3

我正在使用 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 中,fileSystem 获取子目录,但下载失败并显示“找不到文件”。

如果我用“dir”替换“dir/subdir”,它就可以工作。

对此有任何解决方案或巧妙的解决方法吗?

4

2 回答 2

2

您可以通过探测navigator对象的userAgent属性来识别设备类型:

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

如果是 Android 设备,请dir使用dir/subdir.

请参阅:在 phonegap 中检测设备类型

于 2012-11-20T00:31:29.593 回答
1

除非目录已经存在,否则您不能指定子目录。getDirectory('dir'...那么创建getDirectory('subdir'...

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

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

于 2012-11-20T01:50:38.023 回答