iOS设备上的Ionic 4应用中的Twitter小部件

时间:2019-05-05 20:03:51

标签: ionic-framework twitter ionic4

我正在为Web / android / ios开发一个Ionic 4应用程序,其中在某些页面上显示一些动态文本,其中还包括鸣叫。

但是,我在已编译的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中的Web应用:有效

iOS应用程序:不起作用

工作结果示例(网络/安卓): 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嵌入内容应随处加载。

实际结果:除已编译的iOS应用程序外,Twitter到处都嵌入负载。

0 个答案:

没有答案