Phonegap/Cordova无法下载到Android中的子文件夹



我正在使用Phonegap 2.2.0在Eclipse中构建一个Android应用程序

这在iOS中有效:

var uri = encodeURI(value);
var fileName = uri.substring(uri.lastIndexOf('/')+1);
 window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
        fileSystem.root.getDirectory("dir/subdir", {create: true, exclusive: false}, function(dirEntry){
            dirEntry.getFile(fileName, {create: true, exclusive: false}, function(fileEntry) {
                var localPath = fileEntry.fullPath;
                var fileTransfer = new FileTransfer();
                fileTransfer.download(
                    uri,
                    localPath,
                    function(entry) {
                        console.log("xfg download complete: " + entry.fullPath);
                    },
                    function(error) {
                        console.log("xfg download error source " + error.source);
                        console.log("xfg download error target " + error.target);
                        console.log("xfg upload error code" + error.code);
                    }
                );
            });
        });
    });

在上述代码的第 4 行,我正在获取"dir/subdir"的目录,并且下载工作正常。但是,在 Android 中,文件系统会获取子目录,但下载失败并显示"找不到文件"。

如果我将"dir/subdir"替换为"dir",它可以工作。

对此有什么解决方案或聪明的解决方法吗?

可以通过

探测navigator对象的userAgent属性来标识设备类型:

if((navigator.userAgent.match(/Android/i)) == "Android")

如果是安卓设备,请使用 dir 而不是 dir/subdir .

请参阅: 检测电话间隙中的设备类型

除非子目录已存在,否则无法指定该目录。所以创建getDirectory('dir'...然后getDirectory('subdir'...

https://developer.mozilla.org/en-US/docs/DOM/File_API/File_System_API/DirectoryEntry :

绝对路径或从目录条目到 的相对路径 要查找或创建的目录。尝试 创建一个其直接父级尚不存在的文件。

最新更新