内部导航被拒绝:<;允许导航未设置>;在iOS上的科尔多瓦

内部导航被拒绝:<;允许导航未设置>;在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" /> 如果您想允许导航

我用Cordova构建了一个iOS应用程序。应用程序尝试加载网页,如index.html。但是,页面保持白色空白,控制台中出现错误“内部导航被拒绝-”

我已经设置了
,还尝试设置了
标记。但是页面保持空白。我还缺什么吗?请导游

在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:*" />