Внутренняя навигация отклоняется: <allow-navigation not set> в Кордове на iOS
Я построил приложение iOS, используя Кордову. Приложение пытается загрузить веб-страницу, например. http://yourdomain.com/home в index.html. Но страница остается пустой, с ошибкой в консоли "Внутренняя навигационная отклоненная - < allow-navigation > не установлена для url = ' http://yourdomain.com/home" ".
Я уже установил <access origin="http://yourdomain.com/home" subdomains="true" />
, а также попытался установить тег <allow-navigation>
. Но страница остается пустой. я что-то пропустил? Пожалуйста, направляйте.
После добавления следующего meta-тега в index.html "внутренняя ошибка навигации" исчезла, но страница все еще белая.: (
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script src: 'self' 'unsafe-inline' 'unsafe-eval'">
Ответы
Ответ 1
У меня возникла эта проблема, и оказалось, что есть два файла config.xml. Первый - в Xcode, но вы должны отредактировать второй файл из файловой системы.
AppName/config.xml
AppName/platforms/ios/AppName/config.xml
Я добавил
<allow-navigation href="*" />
для обоих из них, и это сработало. Использование 6.3.0.
Ответ 2
Вы должны добавить эту строку в свой config.xml
<allow-navigation href="http://yourdomain.com/home" />
или этот, если вы хотите разрешить навигацию ко всем URL-адресам на yourdomain.com
<allow-navigation href="http://yourdomain.com/*" />
Ответ 3
Не рекомендуется открывать URL-адрес в вашем базовом веб-представлении. Используйте cordova-plug-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');
}
}
Ответ 4
Это внутренняя схема, просто разрешающая ей доступ к ней:
<access origin="about:" />
<allow-navigation href="about:" />
Не рекомендуется использовать
<access origin="*" />
<allow-navigation href="*" />
как описано в cordova-plugin-whitelist.