首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iframes可以在WKWebView中与Cordova一起工作吗?

iframes可以在WKWebView中与Cordova一起工作吗?
EN

Stack Overflow用户
提问于 2019-02-01 05:15:20
回答 3查看 1.9K关注 0票数 5

根据Apache Cordova博客的说法,使用WKWebView的iframe可能无法工作。(https://cordova.apache.org/news/2018/08/01/future-cordova-ios-webview.html)

我在App Store中有一个Cordova应用程序,它非常依赖于iframe。既然UIWebView可能会在iOS 13中被移除,那么有没有办法让iframes使用WKWebView工作呢?

以下是我到目前为止所做的工作:

我尝试使用离子WebView插件(https://github.com/ionic-team/cordova-plugin-ionic-webview),虽然它可以在我的应用程序的某些部分工作,但在iframe页面上不起作用。具体地说,我得到的Access-Control-Allow-Origin头包含无效值'null‘。使用UIWebView时,我不会得到这个错误。

EN

回答 3

Stack Overflow用户

发布于 2019-11-02 12:55:59

将此添加到您的科尔多瓦config.xml

代码语言:javascript
运行
复制
<allow-navigation href="http://*.yourdomain.com/*" />

它将允许您的HTML页面从本地主机重定向到远程URL,无论是根文档还是iframe中的子项。

票数 1
EN

Stack Overflow用户

发布于 2020-12-04 02:50:51

我在我的Cordova应用程序中也遇到了这个问题,并找到了解决方法。它涉及到将内容直接写入iframe,而不是给它一个src="...“。这样,iframe就像父级一样运行在同源环境中。

(Iframes确实可以在WkWebView中工作;只是通过src="file://..."加载的任何东西,例如,所有本地应用程序文件都被视为唯一来源,因此往往会搞砸任何跨框架的JavaScript。)

代码语言:javascript
运行
复制
function frameEl_injectHtml(frameEl, injectHtml) {
    // frameEl must exist in DOM before its contentWindow is accessible.
    if (!frameEl.contentWindow) { alert("frameInjectHtml() but frameEl not (yet or anymore) in DOM."); return; }

    frameEl.contentWindow.document.open('text/htmlreplace');
    frameEl.contentWindow.document.write(injectHtml);
    frameEl.contentWindow.document.close();
}

// Create <frame>, insert into DOM, and inject content.
var frameHtml = "<html><head></head>" +
    "<body>" +
        "iframe body" +
        "<script>window.parent.alert('iframe even same-origin as parent.');</script>" +
    "</body></html>";
var frameEl = document.createElement('iframe');
frameEl.src = "about:blank";
document.body.appendChild(frameEl);
frameEl_injectHtml(frameEl, frameHtml);
票数 1
EN

Stack Overflow用户

发布于 2020-04-21 19:39:34

将此添加到您的config.xml中

代码语言:javascript
运行
复制
<allow-navigation href="*" />

然后构建你的ios平台

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

https://stackoverflow.com/questions/54469341

复制
相关文章

相似问题

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