31 votes

Une application Cordova se bloque au démarrage sous iOS 10

Je viens d'installer Xcode 8 beta afin de tester mon application Cordova existante dans iOS 10 beta (via Simulator). Lorsque l'application est lancée, elle se bloque sur la page de chargement. deviceready n'est pas déclenché.

J'ai donc également installé iOS 10 bêta sur mon iPad Air (juste au cas où il s'agirait d'un problème de simulateur), mais j'obtiens les mêmes résultats.

L'application fonctionne bien sous iOS 9.3 (appareil et simulateur).

Quelqu'un a-t-il rencontré/résolu ce problème ?

UPDATE

Les autres symptômes de ce problème sont les suivants :

  • l'application démarrera correctement si vous mettez l'application en arrière-plan (retournez à l'écran d'accueil) puis en avant-plan (retournez à l'application).
  • Certains plugins ne fonctionneront pas correctement tant que vous n'aurez pas effectué la commutation ci-dessus.

81voto

DaveAlden Points 18934

OK, j'ai trouvé le problème et la solution grâce à ce poste :

Il semble qu'iOS 10 exige des entrées supplémentaires dans le fichier Content-Security-Policy meta tag, à savoir gap: y file: . Après avoir ajouté ces éléments, mon Content-Security-Policy ressemble à ça :

<meta http-equiv="Content-Security-Policy" content="default-src * gap: file:; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval'">

L'application démarre et fonctionne bien sous iOS 10.

J'espère que cela aidera d'autres personnes.

0 votes

Où ajouter la balise méta. Dans mon index.html ou dans un autre fichier. Je suis également confronté au même problème. Veuillez m'aider.

1 votes

Ajouter à la section <head> de index.html. Voir docs cordova-plugin-whitelist mais notez que ce plugin n'a pas besoin d'être installé pour que iOS récupère la métabalise.

0 votes

Je reçois toujours l'erreur : [PDFAnnotation initWithWebView :]: sélecteur non reconnu envoyé à l'instance 0x79684f20

3voto

user2981810 Points 32

J'ai eu le même problème lors du démarrage, et même si je faisais un double tap sur le bouton home et revenais à l'application, le système de fichier de Cordova ne voulait pas écrire sur le périphérique.

J'ai essayé beaucoup de choses, mais j'ai finalement résolu le problème en ajoutant

child-src * gap://ready

à la balise Content-Security-Policy

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X