我使用Cordova构建了一个iOS应用程序。该应用尝试加载网页,例如index.html中的http://yourdomain.com/home。但是,该页面在控制台“内部导航被拒绝 - < allow-navigation>未设置为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'">
答案 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="*" />