【问题标题】:Embedded Tweet not displaying properly in UIWebView swift嵌入式推文无法在 UIWebView swift 中正确显示
【发布时间】:2017-03-28 01:07:18
【问题描述】:

我从 API 调用的 JSON 响应的键中获取 HTML。我在 UIWebView 上加载 HTML。

所有内容都会显示,但带有“twitter-tweet”标签的视图并未创建为仅显示推文文本。

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

这就是它的显示方式。 即将到来的 HTML

【问题讨论】:

  • 这看起来像是缺少 css 和 javascript。您是否确认您也获得了这些组件?
  • 如何在 iOS 中在这段代码中添加 javascript? @weissja19
  • 您可以使用 WKWebView (developer.apple.com/reference/webkit/wkwebview#//apple_ref/occ/…)。这是用于交互式 Web 内容并支持开箱即用的 javascript。您的回复中有
  • 如果我想使用 UIWebView,比?
  • 我使用“stringByEvaluatingJavaScriptFromString”作为字体大小和颜色。但我无法将它用于 twitter 标签,您能否建议一些链接来指导我如何使用它。

标签: html ios swift twitter uiwebview


【解决方案1】:

这个方法对我有用,请一步一步来

示例 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> " 

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

<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 格式,因为我们上面包含的 twitter 脚本不是由 uiwebview 下载的,因为您需要提供基本 url https:

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

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

如果基础 url 产生问题,则更改脚本直接在 twitter 脚本中添加 https: 并将基础 url 设为 nil

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

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

确保您已提供脚本异步

编码愉快!

Reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多