嵌入式推文无法在UIWebView swift中正确显示

时间:2016-11-14 11:46:57

标签: html ios swift twitter uiwebview

我在API调用的JSON响应中获取了一个HTML。我在UIWebView上加载了这个HTML。

显示所有内容但使用“twitter-tweet”标记时,视图未创建,因为仅显示推文文本。

enter image description here  这就是我想在模拟器上显示的方式,但是

enter image description here

这是它的显示方式。 像这样的HTML

enter image description here

1 个答案:

答案 0 :(得分:0)

这种方式对我有用,请一步一步走

示例Twitter Resonse HTML看起来像(删除“在文本中制作正确的字符串)

let responseTwitterHTMLContent = " <blockquote class=\"twitter-tweet\" data-width=\"500\">\n<p lang=\"en\" dir=\"ltr\"><a href=\"https:\/\/twitter.com\/kalyansury\">@kalyansury<\/a> Yes, last night. With a really lame and bleeding obvious response. I&#39;m thinking of my next steps. <a href=\"https:\/\/twitter.com\/HDFC_Bank\">@HDFC_Bank<\/a> <a href=\"https:\/\/twitter.com\/HDFCBank_Cares\">@HDFCBank_Cares<\/a><\/p>\n<p>&mdash; Karthik (@beastoftraal) <a href=\"https:\/\/twitter.com\/beastoftraal\/status\/826589530748813313\">February 1, 2017<\/a><\/p><\/blockquote> " 

如果您的回复不包含此推文脚本

<script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>

以编程方式在head标记中包含如下所示的twitter脚本

<head><script async src=//platform.twitter.com/widgets.js charset=utf-8></script></head>

然后最终修改的HTML内容看起来像

let ModifyHtmlcontent = "<html><head><script async src=//platform.twitter.com/widgets.js charset=utf-8></script><style></head><body style = width: 100%; height:auto; overflow:hidden; margin:100px; text-align:justify;>\(responseTwitterHTMLContent)</body></html>"

在webview中加载此内容

如果我加载上面的html它没有显示twitter格式看起来我们上面包含的上载不是由uiwebview下载的,因为你需要提供基本网址 https:

let url: URL = URL(string: "https:")!

self.yourWebView.loadHTMLString(ModifyHtmlcontent, baseURL: url)

如果基本网址正在创建问题,请更改脚本直接在Twitter脚本中添加 https:并将基本网址设为nil

<head><script async src=https://platform.twitter.com/widgets.js charset=utf-8></script></head>

self.yourWebView.loadHTMLString(ModifyHtmlcontent, baseURL: nil)

确保您已提供脚本异步

快乐的编码!

Reference