Ipad PhoneGap和iOS 8:仅在更新我的应用程序后加载本地文件失败

Ipad PhoneGap和iOS 8:仅在更新我的应用程序后加载本地文件失败,ipad,cordova,ios8,local-files,Ipad,Cordova,Ios8,Local Files,我正在开发一个PhoneGap应用程序,用户可以在其中浏览服务器提供的某些页面。当用户导航到这些页面时,应用程序将下载所有文件(HTML,CSS,JS,等等),并将它们存储在iPad中。这样,如果用户试图访问那些脱机的页面,本地文件就会被提供 此应用程序在iOS中运行良好。昨天,我决定将我的iPad升级到iOS8,起初它似乎奏效了:我可以下载文件,离线,仍然可以使用本地文件浏览页面。我在控制台中遇到的唯一错误是: [Error] Deprecated attempt to access prop

我正在开发一个
PhoneGap
应用程序
,用户可以在其中浏览服务器提供的某些页面。当用户导航到这些页面时,应用程序将下载所有文件(
HTML
CSS
JS
,等等),并将它们存储在
iPad
中。这样,如果用户试图访问那些脱机的页面,本地文件就会被提供

此应用程序在iOS中运行良好。昨天,我决定将我的
iPad
升级到
iOS
8,起初它似乎奏效了:我可以下载文件,离线,仍然可以使用本地文件浏览页面。我在
控制台中遇到的唯一错误是:

[Error] Deprecated attempt to access property 'userAgent' on a non-Navigator object.
当我更新应用程序或在安装应用程序时使用“phonegap local run ios”时,就会出现问题。每当我这样做时,应用程序将无法加载本地文件:

Failed to load resource: The requested URL was not found on this server. 
file:///var/mobile/Containers/Data/Application/7A3590E8-C78A-4F45-B5B9-51FD0BAFE524/Library/files/pages/7/7a56ab3cfa56fbd1b9c4becbf5dca4a2.jpg
文件在那里,我可以使用
文件
插件读取它们,但是WebView无法加载它们。我是这样引用他们的:

<img src="file://localhost/var/mobile/Containers/Data/Application/7A3590E8-C78A-4F45-B5B9-51FD0BAFE524/Library/files/pages/7/7a56ab3cfa56fbd1b9c4becbf5dca4a2.jpg" >
cdvfile://localhost/persistent/pages/7/0b0cc746c5e90ee7fc94b2c15d37d43e.png
起初,我认为这是由于在
iOS
8中加载本地文件的已知错误造成的,但我的应用程序正在加载这些文件,它只是在我更新应用程序后停止工作

我有
PhoneGap
和所有
插件更新到最新版本。我还尝试使用了
Cordova
,同样的情况也发生了

有人知道我如何解决这个问题,或者我应该在哪里报告这个错误吗


谢谢大家!

我设法解决了!我使用fileEntry.toURL获取要在HTML中使用的文件URL。如果我使用

fileEntry.toInternalURL()
相反,它工作得很好

对于内部URL,URL如下所示:

<img src="file://localhost/var/mobile/Containers/Data/Application/7A3590E8-C78A-4F45-B5B9-51FD0BAFE524/Library/files/pages/7/7a56ab3cfa56fbd1b9c4becbf5dca4a2.jpg" >
cdvfile://localhost/persistent/pages/7/0b0cc746c5e90ee7fc94b2c15d37d43e.png

我遇到了同样的问题,我设法解决了它。就我而言,我的问题是每次我更新应用程序时,新应用程序的id都与上一个不同。例如,旧应用程序的路径是:

file:///var/mobile/Containers/Data/Application/7A3590E8-C78A-4F45-B5B9-51FD0BAFE524/Library/files/file.pdf
还有新的:

file:///var/mobile/Containers/Data/Application/1BC5FS-7B3B-90E8-C7C8-1B7C1984C2A71/Library/files/file.pdf
因此,尽管我的pdf文件仍在应用程序数据存储中,但由于应用程序创建了一个新的应用程序id,我使用了错误的路径。我通过创建一个新函数来解决这个问题,该函数在每次更新时更新我的路径。我使用以下命令查找应用程序id:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);

function onFileSystemSuccess(fileSystem) {
    //Do what you need here
  }
文件系统是根目录中包含nativeURL的对象


希望有帮助

如果你还没有看到,这是一个已知的问题:我已经读过这个问题,我认为PhoneGap使用旧的WebView就是因为这个。我的应用程序能够加载本地文件,当我更新应用程序时,问题就出现了,然后在再次下载之前,它将无法加载这些文件。