Jusqu'à ce que je construise récemment, mon application cordova pouvait très bien intégrer une iframe d'un site Web; maintenant, probablement après une mise à jour que j'ai oubliée, la création de l'application entraîne la suppression de l'iframe sur iOS mais fonctionne sur Android.
J'ai ajouté les paramètres suivants à config.xml:
<access Origin="*"/> <access Origin="*.pushwoosh.com" /> <access Origin="*.hoby.org" /> <allow-navigation href="*" /> <allow-intent href="*" />
Ainsi que la politique de sécurité du contenu suivante:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
Ce qui devrait permettre à peu près tout. J'ai le plugin cordova-whitelist ajouté, en utilisant cordova 6.1.0 et Ionic 1.7.14
Edit: cela fonctionne réellement sur l'émulateur iOS, mais pas lorsque je l'exécute sur l'appareil.
Edit 2: il semble que ce soit un problème de safari mobile; Je consulte les fichiers sur mon réseau et même en dehors de Cordova, ils ne se chargent pas correctement. Je peux cependant confirmer que cela fonctionnait depuis au moins quelques jours.
@Phil,
votre application du plugin whitelist
est proche, mais échoue probablement car vous avez javascript dans votre index.html. CSP
a arrêté de nombreux développeurs. La chose la plus simple à faire est de déplacer tous les Javascript et CSS vers leurs propres fichiers séparés.
Bref, voici une solution largement appliquée:
En remarque, le système whitelist
est requis à partir de Cordova Tools 5.0. (21 avril 2015). Pour Phonegap Build, cela signifie que cli-5.1.1
(16 juin 2015)
Ajoutez ceci à votre config.xml
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access Origin="*" /> <!-- Required for iOS9 -->
NOTEZ VOTRE APP IS MAINTENANT INSÉCURE. IL IS À VOUS DE SÉCURISER VOTRE APP.
Ajoutez ce qui suit à votre index.html
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';">
NOTEZ VOTRE APP IS MAINTENANT INSÉCURE. IL IS À VOUS DE SÉCURISER VOTRE APP.
Cette feuille de travail liste blanche devrait vous aider.
COMMENT APPLIQUER le système Cordova/Phonegap the whitelist