在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.fullPath
在PhoneGap 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
请记住,如果拉取请求被接受,请将其翻转。