作者:手机用户2502925313 | 来源:互联网 | 2023-05-27 11:02
我有一个混合应用程序,使用Cordova 3.7和jQuery Mobile 1.3.2在iOS 7上完美运行
我在iOS 8上测试它并且它已经坏了.我正在使用绝对路径请求我的应用程序的每个页面(视图),使用file://
协议,如:
file:///var/mobile/Applications//MyApp.app/www/views/add-project.html
但我得到错误:
Failed to load resource: The requested URL was not found on this server.
我读到了这个bug,是问题吗?
此外,在iOS 8上,www文件夹的位置与iOS 7略有不同,它解析为:
file:///var/mobile/Containers/Data/Application//MYApp.app/www/views/add-project.html
它是否正确?
我尝试使用toURL()和toInternalURL()方法来获得绝对路径:
cdvfile://localhost/root/var/mobile/Containers/Bundle/Application//MyApp.app/
但我总是得到同样的错误.有什么建议吗?
谢谢
1> Mirko..:
对于那些可能发现这个有用的人,我终于设法解决了这个问题.
www
ios 8+上文件夹的完整路径是:
file:///private/var/mobile/Containers/Bundle/Application//.app/www/
但是当您使用Cordova请求应用程序目录时,执行以下操作:
window.resolveLocalFileSystemURL(cordova.file.applicationDirectory, onSuccess, onError);
它会给你一个错误的路径(iOS 8.1.2上的Cordova 3.7),如:
file:////var/mobile/Containers/Bundle/Application//.app/
使用docs上建议的toURL()方法
因此,您需要手动进行一些调整
var path = fileSystem.toURL();//given by the success callback
IOS_ASSETS_ABS_PATH = path.replace("file:////", "file:///private/");
IOS_ASSETS_ABS_PATH += "www/";
和宾果游戏!