我可以在离子移动应用程序中使用$ cordovaFileOpener打开文件夹吗?

时间:2015-09-21 16:56:12

标签: angularjs cordova ionic

我可以看到打开文件(PDF,mp3等)的示例,但是如何打开仅由我的应用程序创建的文件夹。我不知道在文件类型的第二个参数中传递什么,因为我想打开文件夹。

以下无法使用

$cordovaFileOpener2.open(
        cordova.file.externalRootDirectory + "MyFolder/",
        ''
    ).then(function() {
          // Success!
    }, function(err) {
          // An error occurred. Show a message to the user
    });

2 个答案:

答案 0 :(得分:0)

要获取文件夹的所有文件,我使用本机API。我创建了一个接收路径并返回FileEntry数组的函数。

在ES2015(ES6)中:

function getFiles(path) {
  return new Promise((resolve, reject) =>
    resolveLocalFileSystemURL(path, fileSystem => {
      let directoryReader = fileSystem.createReader();
      directoryReader.readEntries(entries => resolve(entries), error => reject(error));
    }, error => reject(error)));
}

函数返回的FileEntry示例是:

FileEntry {
  isFile: true,
  isDirectory: false,
  name: "file.pdf",
  fullPath: "/Android/data/app/file.pdf",
  filesystem: FileSystem
}

此外,您可以使用fileOpener2打开每个文件:

$cordovaFileOpener2.open(file.nativeURL, 'application/pdf');

答案 1 :(得分:0)

要打开所有类型的文件/文件夹,请使用以下插件

cordova plugin add https://github.com/pwlin/cordova-plugin-file-opener2.git

然后使用以下代码

 $cordovaFileOpener2.open(
    'path',
    'application/*'            
  ).then(function() {
          // Success!
  }, function(err) {
          // An error occurred. Show a message to the user
  });   

参考:http://ngcordova.com/docs/plugins/fileOpener2/