cordova - 无法将位置更改为本地文件,例如 Phonegap 3.5 中的 cdvfile ://path/index. html

标签 cordova phonegap-build

我的应用程序使用 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 上测试)。

尝试更改位置时,没有任何 react 。应用程序停留在当前页面,似乎没有抛出异常。

在这两种情况下,我都使用 org.apache.cordova.file插件版本 1.0.1(Phonegap Build 上可用的版本)。

Phonegap 3.5.0 有什么变化吗?

最佳答案

出于某种原因,您只需要使用 toNativeURL而不是 toURL在 Phonegap 3.5 中(在 Android 上测试):

  • toURL给我cdvfile://localhost/persistent/Path/To/Folder
  • toNativeURL给我file:///storage/sdcard0/Path/To/Folder

  • 使用 toNativeURL有使用 file 的优势协议(protocol)而不是 cdvfile ,因此不存在同源策略问题(参见我的另一个问题 AJAX blocked when using cdvfile - Phonegap )。

    关于cordova - 无法将位置更改为本地文件,例如 Phonegap 3.5 中的 cdvfile ://path/index. html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25597969/

    相关文章:

    cordova - 了解应用程序在后台时是否收到通知

    ios - 仅使用 PhoneGap Build 构建功能齐全的 iOS 应用程序,无需类似 Mac 的硬件

    cordova - iOS phonegap 中的退出按钮事件?

    javascript - 使用 Ajax 进行 PhoneGap 身份验证

    iOS 在 UIWebBrowserView 上以编程方式禁用 Quicktype 键盘

    ios5 - Cordova (PhoneGap) 和 iFrame

    cordova - 获取PhoneGap App版本的插件?

    jquery - 如何在 Phonegap 构建中安装 chromecast

    javascript - 当我上传新的 zip 文件时,Phonegap build 拒绝更新我的应用程序

    php - 我们可以在 phonegap 上为 ipad 应用程序使用 opencart 或 zen cart 吗