我的应用使用FileAPI
在设备上复制文件。这在Phonegap 3.4.0和3.5.0中运行良好。
然后它通过执行window.location = "cdvfile://localhost/persistent/TEST/index.html";
打开一个html文件(注意路径不是硬编码的,而是使用类似myDirEntry.toURL()
的东西,并且3.4和3.5都给出了相同的路径)。
这在3.4.0(在几个版本的Android和iOS上测试)中运行良好,但它在3.5.0中不起作用(仅在Android 4.1.2和4.4.2上测试过)。
尝试更改位置时,没有任何反应。该应用程序保留在当前页面中,似乎没有异常抛出。
在这两种情况下,我都使用org.apache.cordova.file
插件版本1.0.1(Phonegap Build上提供的插件)。
Phonegap 3.5.0中有什么变化吗?
答案 0 :(得分:4)
出于某种原因,您只需在Phonegap 3.5(在Android上测试)中使用toNativeURL
代替toURL
:
toURL
给了我cdvfile://localhost/persistent/Path/To/Folder
toNativeURL
给了我file:///storage/sdcard0/Path/To/Folder
使用toNativeURL
有利于使用file
协议而不是cdvfile
,因此没有同源策略问题(参见我的其他问题AJAX blocked when using cdvfile - Phonegap)。
答案 1 :(得分:0)
如果文件名包含任何空格,则接受的答案将不起作用,因为toNativeURL包含url编码。 [Xcode 5.1及以下版本就是这种情况,因为数据存储在“Application Support”文件夹中。]
要解决此问题,请使用: