内部导航被拒绝:<;允许导航未设置>;在iOS上的科尔多瓦
我用Cordova构建了一个iOS应用程序。应用程序尝试加载网页,如index.html。但是,页面保持白色空白,控制台中出现错误“内部导航被拒绝-” 我已经设置了内部导航被拒绝:<;允许导航未设置>;在iOS上的科尔多瓦,ios,cordova,web,webpage,cordova-plugins,Ios,Cordova,Web,Webpage,Cordova Plugins,我用Cordova构建了一个iOS应用程序。应用程序尝试加载网页,如index.html。但是,页面保持白色空白,控制台中出现错误“内部导航被拒绝-” 我已经设置了,还尝试设置了标记。但是页面保持空白。我还缺什么吗?请导游 在index.html中添加以下元标记后,“内部导航错误”消失,但页面仍然为白色空白:( 您必须将此行添加到config.xml中 <allow-navigation href="http://yourdomain.com/home" /> 如果您想允许导航
,还尝试设置了
标记。但是页面保持空白。我还缺什么吗?请导游
在index.html中添加以下元标记后,“内部导航错误”消失,但页面仍然为白色空白:(
您必须将此行添加到config.xml中
<allow-navigation href="http://yourdomain.com/home" />
如果您想允许导航到yourdomain.com上的所有URL,也可以使用此选项
<allow-navigation href="http://yourdomain.com/*" />
不建议在基本web视图中打开url。请在应用浏览器中使用cordova插件并调用应用浏览器打开外部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');
}
}
我遇到了这个问题,结果是有两个config.xml文件。第一个文件在Xcode中,但您必须从文件系统编辑第二个文件
AppName/config.xml
AppName/platforms/ios/AppName/config.xml
我补充说
<allow-navigation href="*" />
这是一个内部使用的方案,只需允许访问/导航即可:
<access origin="about:*" />
<allow-navigation href="about:" />
感谢您的指针。解决方案
<allow-navigation href="about:" />
为我导致cordova prepare错误。我需要改用以下选项:
<allow-navigation href="about:*" />
我已经尝试过,但没有成功。我需要安装一些插件才能成功吗?如果你使用cordova ios 4.x.x,你不需要添加任何其他内容。尝试
并删除内容安全策略标记是cordova项目。我有两个“config.xml”文件。一个在“www/”文件夹旁边,另一个在“www/”文件夹内。如果我更改“www/”文件夹外的“config.xml”,它对我有效。您不应该在www/”文件夹内有config.xml。如果您使用的是Ionic,请参阅我的答案:某些iFrame的使用会触发“内部导航”安全限制。因此,即使是行为良好的SPA也可能需要启用此功能。/“hybrid”同时检测Cordova和Capacitor//if(this.platform.is('hybrid')){这个答案是不对的,你必须只修改根config.xml,然后当你做一个cordova prepare,build或run时,它将被复制到另一个config.xml。我不使用cordova prepare,我在Xcode中打开项目,因为我做了自定义。Tom Kincaids的答案对我来说非常有效!出于某种原因,cordove从AppName中删除了这一行/platforms/ios/AppName/config.xml在每次构建之后,即使我将其添加到AppName/config.xml中
<allow-navigation href="about:" />
<allow-navigation href="about:*" />