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?
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?
Dans PhoneGap 3.0, vous devez modifier le fichier config.xml dans le dossier du projet (remarque: pas le www/config.xml).
<access Origin="*" />
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="*" />
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.
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
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.
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
.