web-dev-qa-db-fra.com

Navigation interne rejetée: <autoriser la navigation non défini> dans Cordova sous iOS

J'ai construit une application iOS avec Cordova. L’application essaie de charger une page Web, par exemple http://votredomaine.com/home dans index.html. Cependant, la page reste blanche et vierge avec une erreur dans la console "La navigation interne a été rejetée - <allow-navigation> n'est pas défini pour url = ' http://votredomaine.com/home '".

J'ai déjà mis <access Origin="http://yourdomain.com/home" subdomains="true" /> et aussi essayé en mettant <allow-navigation> tag. Mais la page reste vide. est-ce que je manque quelque chose d'autre? S'il vous plaît guider.

Après avoir ajouté la balise Meta suivante dans index.html, "l'erreur de navigation interne" a disparu, mais la page est toujours blanche. :(

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

J'avais ce problème et il s'avère qu'il y a deux fichiers config.xml. Le premier est dans Xcode, mais vous devez éditer le second depuis le système de fichiers.

AppName/config.xml

AppName/platforms/ios/AppName/config.xml

J'ai ajouté

<allow-navigation href="*" /> 

à tous les deux et cela a fonctionné. Utiliser 6.3.0.

63
Tom Kincaid

Vous devez ajouter cette ligne à votre config.xml

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

ou celui-ci si vous voulez autoriser la navigation vers toutes les urls de votredomaine.com

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

Il est déconseillé d'ouvrir une URL dans la vue Web de votre base. Utilisez le cordova-plugin-inappbrowser et appelez le inappbrowser pour ouvrir l’URL externe:

function open_outer_url(url){
    if(window.cordova && window.cordova.InAppBrowser){
        window.cordova.InAppBrowser.open(url, "_blank", 'location=no');
    }else{
        window.open(url,'_blank');
    }
}
5
Yang Tsao

Merci pour le pointeur. La solution

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

causé une erreur préparer Cordova pour moi. J'ai besoin d'utiliser les éléments suivants à la place:

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

C'est un schéma utilisé en interne, autorisez seulement l'accès/la navigation:

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

Il n'est pas recommandé d'utiliser

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

comme décrit dans cordova-plugin-whitelist .

4
asgoth