iOS - UIWebView 加载 HTML 字符串包含 iframe 不起作用
Posted
技术标签:
【中文标题】iOS - UIWebView 加载 HTML 字符串包含 iframe 不起作用【英文标题】:iOS - UIWebView loading HTML string contains iframe not working 【发布时间】:2017-03-27 15:50:12 【问题描述】:我正在尝试将包含 iframe 的 html 字符串加载到 UIWebview
,该视图占用了内容的空间,但它加载了完全空白的视图,这里是 HTML
<html>
<head>
<meta http-equiv='Content-Type' content='charset=utf-8'/>
<style>
iframemax-width:100% !important
</style>
</head>
<body>
<p dir="RTL"> <iframe allowfullscreen="" frameborder="0" id="molvideoplayer" scrolling="no" src="http://www.dailymail.co.uk/embed/video/1411595.html" title="MailOnline Embed Player" ></iframe> </p>
</body>
</html>
我的代码也是
self.newsBodyWebView.loadHTMLString(htmlString, baseURL: nil)
我也尝试了 UIWebView 委托功能
func webView(_ webView: UIWebView, didFailLoadWithError error: Error)
print(error.localizedDescription)
我收到了这个错误
操作无法完成。 (NSURLErrorDomain 错误 -999。)
我搜索了错误但没有任何帮助。
当我删除 iframe 并编写任何其他 html 时,UIWebView 运行良好。
我不知道我的代码有什么问题
编辑
当我按下任何按钮在容器视图中进行更改时,webview 再次出现,我很困惑为什么会发生这种情况!
【问题讨论】:
【参考方案1】:终于弄明白了,webview的高度是在webview这样启动后设置的
func webViewDidFinishLoad(_ webView: UIWebView)
webView.frame.size.height = 1
self.webViewHeight = webView.sizeThatFits(CGSize.zero)
我把它改成了
func webViewDidFinishLoad(_ webView: UIWebView)
webView.frame.size.height = 1
let height = webView.scrollView.contentSize.height
var wvRect = webView.frame
wvRect.size.height = height
webView.frame = wvRect
现在一切正常。
【讨论】:
以上是关于iOS - UIWebView 加载 HTML 字符串包含 iframe 不起作用的主要内容,如果未能解决你的问题,请参考以下文章