我在API调用的JSON响应中获取了一个HTML。我在UIWebView上加载了这个HTML。
显示所有内容但使用“twitter-tweet”标记时,视图未创建,因为仅显示推文文本。
这是它的显示方式。 像这样的HTML
答案 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'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>— 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)
确保您已提供脚本异步
快乐的编码!