我正在使用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”就行了。
对此有任何解决方案或巧妙的解决方法吗?
答案 0 :(得分:2)
您可以通过探测navigator
对象的userAgent
属性来识别设备类型:
if((navigator.userAgent.match(/Android/i)) == "Android")
如果是Android设备,请使用dir
代替dir/subdir
。
答案 1 :(得分:1)
除非目录已存在,否则无法指定子目录。因此,请创建getDirectory('dir'...
,然后getDirectory('subdir'...
https://developer.mozilla.org/en-US/docs/DOM/File_API/File_System_API/DirectoryEntry:
从DirectoryEntry到的绝对路径或相对路径 要查找或创建的目录。尝试这是一个错误 创建一个直接父级尚不存在的文件。