在iOS PhoneGap 3.3上链接到本地​​文件(cdvfile://)

要轻松更新我的应用程序,我将www文件夹的内容复制到手机,然后执行window.location = workingDirectory.toURL() + "/index.html"

编辑 – 请注意,这个工作,直到Phonegap 3.4,但不是3.5(当我试图改变位置似乎没有发生)。 如果不使用toNativeURL ,而使用toNativeURL ,那么它也可以使用3.5。 使用toNativeURL也修复了iOS上的当前问题

复制所有文件并打开索引在iOS和Android上都可以正常工作。 iOS上的问题虽然是绝对没有风格的页面,就好像到CSS文件的链接不工作。 在Android上一切正常。

我的链接是相对的(例如<link href="css/reseter.css" rel="stylesheet"> )。 链接到其他页面或脚本的工作。

这里是我打开的简体主页:

 <!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"); 

我正确地得到alert (其标题是cdvfile://localhost/ ),我也可以正确地去page2.html 。 唯一的问题是风格。

如果我在Safari中打开指向我的计算机的页面,则会正确显示样式。

我尝试了几件事,无济于事:

  • <head>添加<base href="cdvfile://localhost/persistent/MyApp/"> <head>
  • 更新我所有的href和src以获得完整的cdvfilepath(例如使用<link href="cdvfile://localhost/persistent/MyApp/css/reseter.css" rel="stylesheet">

我终于通过使用fileSystem.root.fullPathPhoneGap 2.9中工作。 在PhoneGap 3.3它只返回/ 。 这是PhoneGap 3.3的一个错误,当使用cdvfile时,除了CSS文件,一切似乎都起作用了?

我决定在PhoneGap 3.3上临时使用 iOS的应用程序的相对path../../Documents/MyApp/index.html 。 我不知道是否安全使用。

Phonegap 3.5 编辑 (我没有testing3.3),使用工作window.location = workingDirectory.toNativeURL() + "/index.html"; (即使用toNativeURL而不是toURL )的作品。

检查以下链接(插件已更改): http : //cordova.apache.org/news/2014/02/10/plugins-release.html

它看起来像你遇到CB-6532 。 我只是提出一个修复请求 – 你可以暂时使用我的分支,直到它被接受:

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

要使用它,做

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

请记住,如果拉取请求被接受,请将其翻转。