在android上使用meteor cordova将文件保存到本地文件系统时遇到问题

时间:2016-01-06 21:40:17

标签: android cordova meteor

我试图保存一个文件,该文件存在于我的服务器上并显示在我的应用程序中,以便下载并保存到客户端的文件系统中。什么是在流星中做到这一点的最好方法?

我目前的实现是使用window.requestFileSystem和FileTransfer(我相信它是一个cordova插件)

我也试过LocalFileSystem.PERSISTANT,但后来我得到一个未定义的错误。

代码:



var fileSystem;
//step one is to request a file system  
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0,
  function(fs) {
    fileSystem = fs;
    console.log(fileSystem);

    var fileTransfer = new FileTransfer();
    var uri = encodeURI(imageBaseUrl + origUri);

    fileTransfer.download(
      uri,
      fileSystem.root.fullPath + 'download.pdf',
      function(entry) {
        console.log("download complete: " + entry.fullPath);
      },
      function(error) {
        console.log(error);
      },
      false, {
        headers: {
          "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
        }
      }
    );
  }, function(e) {
    alert('failed to get fs');
    alert(JSON.stringify(e));
  });




我在Android上遇到的错误如下:

FileSystem对象:

name: "temporary"
root: DirectoryEntry
filesystem: FileSystem
fullPath: "/"
isDirectory: true
isFile: false
name: ""
nativeURL: "file:///storage/emulated/0/Android/data/com.myapp.app/cache/"

FileTransferError对象:

body: null
code: 1
exception: "/download.pdf: open failed: EROFS (Read-only file system)"
http_status: 200
source: "http://example.com/upload_H5XtiJJRf2Bmeq3d.pdf"
target: "/download.pdf"

事情是,在AndroidManifest.xml中,请求EXTERNAL_WRITE_ACCESS的权限,那么文件系统肯定应该是可写的吗?

是否需要授予其他权限,如果需要,我可以在何处以及如何申请?

谢谢!

0 个答案:

没有答案