我正在为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>— 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应用程序:不起作用
工作结果示例(网络/安卓):
如您所见,标签在此处填充。渲染很好。
另一方面,iOS上的结果是:
请注意,不会删除blockquote标记,也不会填充<twitter-widget>
标记。
我已经在远程调试中进行了测试,发现该窗口小部件对Twitter服务器进行了所有必需的查询,甚至在“网络”选项卡中都看到它返回了正确的响应。但是,<twitter-widget>
标签从不填充,我不能强迫它显示任何类型的错误。
这仅适用于已编译的iOS应用程序。
该怎么办? twttr.widgets.createTweet()
都无法获得相同的结果。
预期结果:Twitter嵌入内容应随处加载。
实际结果:除已编译的iOS应用程序外,Twitter到处都嵌入负载。