Lien vers des files locaux (cdvfile: //) sur iOS PhoneGap 3.3

Pour facilement mettre à jour mon application, je copy le contenu du dossier www sur le téléphone, puis je fais un window.location = workingDirectory.toURL() + "/index.html" .

EDIT – notez que cela fonctionne jusqu'à Phonegap 3.4, mais pas sur 3.5 (rien ne semble se produire lorsque j'essaie de changer l'location). Si au lieu de toURL j'utilise toNativeURL , alors cela fonctionne aussi sur 3.5. L'utilisation de toNativeURL corrige également le problème actuel sur iOS .

La copy de tous les files et l'ouverture de l'index fonctionnent correctement sur iOS et Android. Le problème sur iOS est qu'il n'y a absolument aucun style sur la page, comme si les liens vers les files CSS ne fonctionnaient pas. Tout fonctionne bien sur Android.

Mes liens sont relatifs (par exemple <link href="css/reseter.css" rel="stylesheet"> ). Les liens vers d'autres pages ou vers des scripts fonctionnent.

Voici la page principale simplifiée que j'ouvre:

 <!DOCTYPE html> <html> <head> <title></title> <link href="style.css" rel="stylesheet"> <script src="main.js"></script> </head> <body> <div class="red">I should be red but I'm not!</div> <a href="page2.html">This correctly takes me to the other page.</a> </body> </html> 

style.css

 .red { color: red; } 

main.js

 alert("HELLO is correctly displayed"); 

Je reçois correctement l' alert (son titre est cdvfile://localhost/ ) et je peux aussi aller sur page2.html . Le seul problème est avec les styles.

Si j'ouvre la page dans Safari pointant vers mon ordinateur, le style est correctement affiché.

J'ai essayé quelques choses, en vain:

  • Ajoutez <base href="cdvfile://localhost/persistent/MyApp/"> dans la <head>
  • Mettez à jour tous mes href et src pour avoir le path complet cdvfile (par exemple, utilisez <link href="cdvfile://localhost/persistent/MyApp/css/reseter.css" rel="stylesheet"> )

J'ai finalement réussi à l'utiliser dans PhoneGap 2.9 en utilisant fileSystem.root.fullPath . Sur PhoneGap 3.3, il ne renvoie que / . Est-ce un bug sur PhoneGap 3.3 que lors de l'utilisation de cdvfile, tout semble fonctionner à l'exception des files CSS?

J'ai décidé d' utiliser temporairement un path relatif à mon application pour iOS sur PhoneGap 3.3: ../../Documents/MyApp/index.html . Je ne sais pas si c'est sûr ou non.

EDIT Dans Phonegap 3.5 (je n'ai pas testé en 3.3), en utilisant work window.location = workingDirectory.toNativeURL() + "/index.html"; (ie en utilisant toNativeURL au lieu de toURL ) fonctionne.

Vérifiez le lien suivant (le plugin a été changé): http://cordova.apache.org/news/2014/02/10/plugins-release.html

On dirait que vous utilisez le CB-6532 . Je viens de faire une request de correctif – vous pouvez utiliser temporairement ma fourchette jusqu'à ce qu'elle soit acceptée:

https://github.com/loufranco/cordova-plugin-file

Pour l'utiliser, faites

  cordova plugin remove org.apache.cordova.file cordova plugin add https://github.com/loufranco/cordova-plugin-file.git 

N'oubliez pas de l'inverser si la request de tirage est acceptée.