Виджет Twitter в приложении Ionic 4 на устройстве iOS - PullRequest
1 голос
/ 05 мая 2019

Я занимаюсь разработкой приложения для Ionic 4 для web / android / ios, в котором я показываю на некоторых страницах динамический текст, в том числе и твиты.

Однако я столкнулся с проблемой в скомпилированномПриложение для iOS, где твиты не отображаются.

По сути, я загружаю скрипт twitter в app.component.ts в функции

  async ngAfterViewInit() {
    !function(d,s,id){
        var js: any,
            fjs=d.getElementsByTagName(s)[0],
            p='https';
        if(!d.getElementById(id)){
            js=d.createElement(s);
            js.id=id;
            js.src=p+"://platform.twitter.com/widgets.js";
            fjs.parentNode.insertBefore(js,fjs);
        }
        return true;
    }
    (document,"script","twitter-wjs");
  }

Затем загружаю текст из бэкэнда и вставляюследующий код на странице:

<blockquote class="twitter-tweet">
<p lang="en" dir="ltr">[contents]</p>&mdash; Name (@[Handle]) 
<a href="https://twitter.com/[Handle]/status/1125039697040957441?ref_src=twsrc%5Etfw">May 5, 2019</a>
</blockquote>

И когда мне нужно отобразить все твиты, я вызываю twttr.widgets.load();, который доступен и работает.Ранее он преобразовывал код в хорошо визуализированный встроенный виджет.

Результаты:

Веб-приложение: работает

Приложение Android: работает

Веб-приложение для мобильных устройств Safari: работает

Приложение для iOS: не работает

Пример рабочего результата(web / android): working on web and android, example result

Как видите, тег заполняется здесь.Хорошо отрисовывает.

С другой стороны, результат на iOS таков: does not work on iOS, example result

Обратите внимание, что тег blockquote не удаляется и тег <twitter-widget> не заполняется.

Я протестировал удаленную отладку и обнаружил, что виджет выполняет все необходимые запросы к серверам Twitter, и я даже вижу на вкладке Сеть, что он возвращает правильный ответ.Однако тег <twitter-widget> никогда не заполняется, и я не могу заставить его отображать какие-либо ошибки.

Это только для скомпилированного приложения iOS.

Что делать?twttr.widgets.createTweet() также не работает с одинаковыми результатами.

Ожидаемый результат: встраивание Twitter должно загружаться везде.

Фактический результат: Twitter встраивает загрузку везде, кроме скомпилированного приложения iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...