我正在使用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 :
绝对路径或从目录条目到 的相对路径 要查找或创建的目录。尝试 创建一个其直接父级尚不存在的文件。