Internal navigation rejected: <allow-navigation not set> in Cordova on iOS

﹥>﹥吖頭↗ 提交于 2019-11-29 10:37:36

问题


I have built an iOS app using Cordova. The app tries to load a web page e.g. http://yourdomain.com/home in index.html. But, the page stays white blank with error in console "Internal navigation rejected - <allow-navigation> not set for url='http://yourdomain.com/home'".

I have already set <access origin="http://yourdomain.com/home" subdomains="true" /> and also tried by setting <allow-navigation> tag. But the page stays blank. am I missing anything else? Please guide.

After adding the following meta tag in index.html, the "internal navigation error" has gone, but the page is still white blank. :(

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

回答1:


I was having this problem and it turns out there are two config.xml files. The first one is in Xcode, but you have to edit the second one from the filesystem.

AppName/config.xml

AppName/platforms/ios/AppName/config.xml

I added

<allow-navigation href="*" /> 

to both of them and it worked. Using 6.3.0.




回答2:


You have to add this line to your config.xml

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

or this one if you want to allow the navigation to all the urls on yourdomain.com

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



回答3:


It's not recommend to open a url in your base web view. Use the cordova-plugin-inappbrowser and call the inappbrowser to open outer 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');
    }
}



回答4:


Thanks for the pointer. The solution

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

caused a cordova prepare error for me. I need to use the following instead:

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



回答5:


It is a scheme used internally, just allow access/navigation to it:

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

It is not recommended to use

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

as described in cordova-plugin-whitelist.



来源:https://stackoverflow.com/questions/36234957/internal-navigation-rejected-allow-navigation-not-set-in-cordova-on-ios

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!