内部导航被拒绝:iOS上的Cordova中的<allow-navigation not =“”set =“”>

时间:2016-03-26 11:54:05

标签: ios cordova web webpage cordova-plugins

我使用Cordova构建了一个iOS应用程序。该应用尝试加载网页,例如index.html中的http://yourdomain.com/home。但是,该页面在控制台“内部导航被拒绝 - &lt; allow-navigation&gt;未设置为url ='http://yourdomain.com/home'”时出现错误,并且显示错误。

我已设置<access origin="http://yourdomain.com/home" subdomains="true" />,并尝试设置<allow-navigation>标记。但页面保持空白。我错过了什么吗?请指导。

在index.html中添加以下元标记后,“内部导航错误”已消失,但页面仍为空白。 :(

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

5 个答案:

答案 0 :(得分:61)

我遇到了这个问题,结果发现有两个config.xml文件。第一个是在Xcode中,但你必须从文件系统编辑第二个。

AppName/config.xml

AppName/platforms/ios/AppName/config.xml

我添加了

<allow-navigation href="*" /> 

对他们两个都有效。使用6.3.0。

答案 1 :(得分:23)

您必须将此行添加到config.xml

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

或者这个,如果你想允许导航到yourdomain.com上的所有网址

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

答案 2 :(得分:5)

不建议在基本网络视图中打开网址。使用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');
    }
}

答案 3 :(得分:5)

感谢您的指导。解决方案

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

给我造成了科尔多瓦准备错误。我需要改用以下内容:

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

答案 4 :(得分:4)

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

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

不建议使用

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

cordova-plugin-whitelist中所述。