Android Cordova应用程序访问SD卡
我正在为ios和android准备cordova应用程序。在android上,我的应用程序下载一个zip文件并将其解压缩到SD卡中。此zip文件包含一些xml文件和一些JPEG。但不幸的是,我无法通过Android Cordova应用程序访问SD卡,android,ajax,xml,cordova,local-storage,Android,Ajax,Xml,Cordova,Local Storage,我正在为ios和android准备cordova应用程序。在android上,我的应用程序下载一个zip文件并将其解压缩到SD卡中。此zip文件包含一些xml文件和一些JPEG。但不幸的是,我无法通过$.ajax访问xml文件 我试着走这条路 cdvfile://sdcard/webservice/Resim/Kategori.xml cordova.file.externalRootDirectory+'/Resim/Kategori.xml' 我的ajax看起来像 $.ajax({ u
$.ajax
访问xml文件
我试着走这条路
cdvfile://sdcard/webservice/Resim/Kategori.xml
cordova.file.externalRootDirectory+'/Resim/Kategori.xml'
我的ajax看起来像
$.ajax({
url: 'cdvfile://sdcard/webservice/Resim/Kategori.xml',
dataType: 'xml',
async:false,
cache:false,
success: parseMenu
});
我的ajax请求有什么问题?在我构建应用程序之前,我曾尝试将xml
文件发送到www
目录中,它可以使用此路径'../webservice/Resim/Kategori.xml'
我如何通过$.ajax
访问我下载的xml,或者我应该将其下载到android\u资产/www/webservice
路径中,如果是,我如何将其下载到那里
PS:如果需要,我的下载和提取功能执行良好
function appReady(){
alert('tamam');
}
var filePath = "/sdcard/";
//İndirelecek dosyanın URL yolu
var zipURL = "http://www.somedomain.com/webservice/webservice.zip";
//İndirilen dosyanın alacağı isim.
var fileName = "webservice.zip";
function downloadZip() {
var options = new FileUploadOptions();
var fileTransfer = new FileTransfer();
fileTransfer.download(
encodeURI(zipURL),
filePath + fileName,
function(entry) {
zip.unzip(filePath+ fileName, filePath, appReady, null);
alert("download complete: " + entry.fullPath);
},
function(error) {
alert(error);
alert("download error source " + error.source);
alert("download error target " + error.target);
},
false,
{
}
);
}
function init(){
// eğer indirilmediyse..
if(localStorage.getItem('downloaded') != "yes") {
alert('inmemiş inecek..');
// uygualama ana klasörünü dosya yolu olarak belirledim siz değişebilirsiniz.
alert(filePath);
// zip dosyasını indir
downloadZip();
} else {
alert('İnmiş gözüküyor');
// uygulamanızı çalıştıran fonksiyon olduğunu varsaydım.
appReady();
}
}
document.addEventListener("deviceready", init, false);
为了使用存储中的目录,您必须使用文件系统。因为Cordova是一个网络视图,所以它没有完全的访问权限。所以你需要使用via库。检查这个@MohammedImranN它需要额外的库或纯javascript吗?@MohammedImranN我的应用程序中有这个插件。您能告诉我如何解析SD卡存储路径吗?您是否尝试过以下路径:
cordova.file.externalRootDirectory+'webservice/Resim/Kategori.xml'
?您正在将其解压缩到文件夹webservice
中,并试图打开其中的Resim
文件夹。不要在路径末尾的cordova.file.externalRootDirectory
周围使用引号。要使用存储中的目录,必须使用文件系统。因为Cordova是一个网络视图,所以它没有完全的访问权限。所以你需要使用via库。检查这个@MohammedImranN它需要额外的库或纯javascript吗?@MohammedImranN我的应用程序中有这个插件。您能告诉我如何解析SD卡存储路径吗?您是否尝试过以下路径:cordova.file.externalRootDirectory+'webservice/Resim/Kategori.xml'
?您正在将其解压缩到文件夹webservice
中,并试图打开其中的Resim
文件夹。并且不要在路径末尾的cordova.file.externalRootDirectory
周围使用引号。