web-dev-qa-db-fra.com

L'application Cordova se bloque lors du démarrage sur 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 simplement sur la page de chargement - il semble que l'événement deviceready ne soit pas déclenché.

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

L'application fonctionne correctement sur iOS 9.3 (appareil et simulateur).

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

MISE À JOUR

D'autres symptômes de ce problème incluent:

  • l'application démarre correctement si vous mettez l'application en arrière-plan (revenez à l'écran d'accueil), puis mettez en avant l'application (revenez à l'application)
  • certains plugins ne fonctionneront pas correctement tant que vous n'aurez pas effectué la commutation ci-dessus
29
DaveAlden

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

Il semble que iOS 10 nécessite des entrées supplémentaires dans le Content-Security-Policy meta tag, à savoir gap: et file:. Après avoir ajouté ces derniers, 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'">

Et l'application démarre et fonctionne correctement sur iOS 10.

J'espère que cela aide les autres.

76
DaveAlden

J'ai eu le même problème au démarrage, et même si je tapais deux fois sur le bouton d'accueil et revenais sur l'application, le système de fichiers de cordova n'écrirait pas sur l'appareil.

J'ai essayé beaucoup de choses, mais je l'ai finalement corrigé en ajoutant

child-src * gap://ready

à la balise Content-Security-Policy

3
user2981810