web-dev-qa-db-fra.com

Erreur: rejet de la liste blanche dans Phonegap

Je suis nouveau dans le développement mobile. J'utilise Phonegap/Cordova pour créer une application multiplate-forme. Mon code fonctionne bien sur Android, mais lorsque je le porte sur un iPhone, il affiche une erreur:

[143:2003] ERROR whitelist rejection: url="abc"

Maintenant, je peux surmonter ce problème?

54
Neji

Avis : Cette réponse s'applique uniquement à PhoneGap version 1.x et inférieure. À partir de la version 2.x, la configuration de la liste blanche se fait via cordova.xml.

Vous devez ajouter les URL autorisées dans le tableau ExternalHosts de PhoneGap.plist (ou Cordova.plist).

Par exemple, si vous souhaitez autoriser l'accès à cette URL http://www.myhost.com/path/file, ajoutez www.myhost.com en tant que nouvelle entrée dans le tableau ExternalHosts.

Si vous souhaitez autoriser l'accès au contenu de tous les sous-domaines de Google (par exemple, maps.google.com, mails.google.com), vous pouvez ajouter *.google.com en tant que nouvelle entrée dans le tableau ExternalHosts.

Je ne sais pas pourquoi vous obtenez "abc" dans le lien, cependant. Avez-vous "abc" comme lien vers quelque chose? Est-ce un fragment d'URI?

55
nhahtdh

Dans PhoneGap 3.0, vous devez modifier le fichier config.xml dans le dossier du projet (remarque: pas le www/config.xml).

<access Origin="*" />
32
Ivan

Dans PhoneGap 3.0, vous devez éditer www/config.xml et ajouter/éditer des tags <access>. Par exemple, si vous souhaitez tout autoriser, modifiez l’étiquette en:

<access Origin="*" />
18
shawkinaw

Vous pouvez ajouter le code suivant dans le fichier Cordova.plist:

<key>ExternalHosts</key>
       <array>
               <string>*.facebook.com</string>
       </array>

Avec *.facebook.com comme nom de domaine, vous pouvez utiliser deux sous-domaines différents.

8
Manish Agrawal

Vous devrez créer une liste blanche de domaines pour pouvoir accéder à des domaines extérieurs tels que http://google.com .

Dans iOS (Cordova> 3.0.0), les règles de liste blanche se trouvent dans AppName/config.xml et sont déclarées avec l'élément <access Origin="..." />.

Vous pouvez également utiliser des caractères génériques pour déclarer des domaines. Par exemple, pour autoriser l'accès à tous les sous-domaines et TLD (.com, .net, etc.) de Google, utilisez *.google.*.

Référence: Guide de la liste blanche de domaines

3
wael

Même si j'ai eu le même problème ... Je l'ai corrigé de la manière ci-dessous ... Dans cordova.plist -> sous le menu du tableau ExternalHosts, ajoutez un élément en tant que * ou. . Donc, il permet tous les liens externes ... si vous devez mentionner un par un le mentionner comme. , *. google. * etc.

1
bharath gangupalli

Ceci est dû au fait que phonegap ne prend pas d'URL externes. Pour les anciennes versions de Phonegap antérieures à 2.x, nous devons définir url dans cordova.plist comme ceci.

ex: *.google.co.in (vous pouvez mettre votre URL après *. this) et OpenAllWhitelistURLsInWebView--- à ---YES.

0
DC9999