Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Cordova应用程序访问SD卡_Android_Ajax_Xml_Cordova_Local Storage - Fatal编程技术网

Android Cordova应用程序访问SD卡

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

我正在为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({
   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
周围使用引号。