内部导航被拒绝:〈allow-navigation not set>在iOS上的 cordova

zzlelutf  于 2022-11-15  发布在  iOS
关注(0)|答案(5)|浏览(168)

我使用Cordova构建了一个iOS应用程序。该应用程序尝试加载一个网页,例如index.html中的http://yourdomain.example/home。但是,页面保持白色空白,并在控制台中显示错误“内部导航被拒绝-<allow-navigation>未设置为URL='http://yourdomain.example/home'"
我已经设置了<access origin="http://yourdomain.example/home" subdomains="true" />,也尝试过设置<allow-navigation>标签。但是页面仍然是空白的。我错过了什么吗?请指导。
index.html中添加以下 meta标记后,“内部导航错误”消失了,但页面仍然是白色空白。

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script src: 'self' 'unsafe-inline' 'unsafe-eval'">
umuewwlo

umuewwlo1#

我遇到了这个问题,原来有两个configiderxml文件。第一个在Xcode中,但是你必须从文件系统中编辑第二个。

AppName/config.xml

AppName/platforms/ios/AppName/config.xml

我补充道

<allow-navigation href="*" />

并且成功了。使用的是6.3.0。

wvmv3b1j

wvmv3b1j2#

必须将此行添加到config.xml

<allow-navigation href="http://yourdomain.example/home" />

如果您想允许导航到yourdomain.example上的所有URL,则使用此选项

<allow-navigation href="http://yourdomain.example/*" />
oknrviil

oknrviil3#

谢谢你的指点。解决方案

<allow-navigation href="about:" />

导致了cordova准备错误。我需要使用以下代码:

<allow-navigation href="about:*" />
dgjrabp2

dgjrabp24#

这是一个内部使用的方案,只允许访问/导航到它:

<access origin="about:*" />
<allow-navigation href="about:" />

不建议使用

<access origin="*" />
<allow-navigation href="*" />

如X1 E0 F1 X中所述。

7y4bm7vi

7y4bm7vi5#

不建议在基本网页视图中打开URL。请使用cordova-plugin-inappbrowser并调用inappbrowser来打开外部URL:

function open_outer_url(url){
    if(window.cordova && window.cordova.InAppBrowser){
        window.cordova.InAppBrowser.open(url, "_blank", 'location=no');
    }else{
        window.open(url,'_blank');
    }
}

相关问题