iOS - UIWebView加载HTML字符串包含iframe无效

时间:2017-03-27 15:50:13

标签: html ios swift uiwebview

我尝试将包含iframe的HTML字符串加载到UIWebview视图占用内容的空间但是它加载完全空白视图这里是HTML



<html>
	<head>
		<meta http-equiv='Content-Type' content='charset=utf-8'/>
		<style>
			iframe{max-width:100% !important} 
		</style>
	</head>
	    <body>
	        <p dir="RTL"> <iframe allowfullscreen="" frameborder="0" height="573" id="molvideoplayer" scrolling="no" src="http://www.dailymail.co.uk/embed/video/1411595.html" title="MailOnline Embed Player" width="698"></iframe> </p> 
    </body> 
    </html>
&#13;
&#13;
&#13;

我的代码是

self.newsBodyWebView.loadHTMLString(htmlString, baseURL: nil)

我还尝试了UIWebView委托功能

func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
    print(error.localizedDescription)
}

我收到了这个错误

  

无法完成操作。 (NSURLErrorDomain错误-999。)

我搜索了错误,但没有任何帮助。

当我删除iframe并编写任何其他HTML时,UIWebView运行良好。

我不知道我的代码有什么问题

修改

当我按任意按钮在容器视图中进行更改时,webview再次出现,我很困惑为什么会发生这种情况!

1 个答案:

答案 0 :(得分:2)

我终于明白了,webview结束后以这种方式启动了web视图高度

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
}

现在每件事情都很好。