首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自外部源的iframe内容未加载到iOS上的本地HTML文件中

来自外部源的iframe内容未加载到iOS上的本地HTML文件中
EN

Stack Overflow用户
提问于 2019-04-09 23:37:57
回答 2查看 1K关注 0票数 5

我在我用swift编写的iOS应用程序中创建了一个本地HTML文件。将该文件加载到WKWebView中,如下所示:

代码语言:javascript
运行
复制
let url = Bundle(identifier: myIdentifier).url(forResource: "localHtmlFile", withExtension: "html")
let htmlFormatString = try String(contentsOf: url)
loadHTMLString(string: htmlFormatString, baseURL: nil)

HTML页面包含一个iframe,我希望它能加载一个外部页面:

代码语言:javascript
运行
复制
<div>Test</div>
<iframe src="https://www.somepage.com"></iframe>

本地的HTML文件加载成功,因为我可以在div中看到Test文本。iframe也已创建,但为空。如果我使用Safari开发人员工具进行调试,只有一个空的html页面,但没有加载任何内容。此外,根本不执行对url的网络请求。

但是如果我用<script src="https://url-to-some-js">插入一个外部JavaScript文件,JS代码将被成功加载,因此不存在网络问题。而且,如果我用webView.load(URLRequest(url: url))直接加载url,它也能正常工作。只有在iframe中,它才不起作用。

如何在iOS WKWebView中创建外部资源的iframes?这是完全被iOS阻止的,还是我必须配置其他东西?

EN

回答 2

Stack Overflow用户

发布于 2020-02-16 11:23:38

根据一些googling搜索,看起来您需要使用webView的委托方法来允许外部站点。具体地说,使用以下推荐实现来实现webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)

代码语言:javascript
运行
复制
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {

    guard let requestURL = navigationAction.request.url?.absoluteString else { return }

    if requestURL.contains("somepage.com") {
        decisionHandler(.allow)
    }
    else {
        // You don't need to cancel here, but you can implement your own logic here
        decisionHandler(.cancel)
    }
}
票数 5
EN

Stack Overflow用户

发布于 2020-02-13 21:00:39

在桌面浏览器上这样做会导致一些安全问题,因为您在桌面浏览器上有一个本地HTML文件和一个远程iFrame,所以我希望您在这里遇到同样的问题。

您是否可以将本地内容移动到远程服务器?它不一定要和你的iframe内容一样,尽管这会让你的生活更轻松。

如果您有很多本地数据,那么您可以发送一个包含本地数据的JSON对象的父页面的POST请求。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55596500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档