列出Cordova中的android目录(Filebrowser&Folderbrowser)

到目前为止, 还没有太多可定制的文件浏览器。例如, 此插件仅适用于android, 并且似乎已锁定为横向使用, 尽管很好地使用了第三方库和插件, 但有时你找不到很好的东西或无法满足你的要求。

注意:ourcodeworld-cordova-filebrowser插件仅为android创建本机文件和文件夹浏览器, 可在此处的官方Github存储库中使用。

由于多种因素, 例如兼容性, 自定义性和其他因素, 文件浏览器插件的想法似乎很复杂, 因此强烈建议为你的项目创建自己的文件选择器或浏览器!并使用正确的插件是一项容易完成的任务。

我们在项目中需要cordova文件插件, 实现自定义文件浏览器很重要, 你可以使用以下命令下载:

$ cordova plugin add cordova-plugin-file

现在一切都应该变成小菜一碟了!

1)检索文件夹的所有内容

首先, 我们需要了解基本代码的工作方式(记住所有代码都应在” onDeviceReady”事件上执行):

var myPath = cordova.file.externalRootDirectory; // We can use the default externalRootDirectory or use a path : file://my/custom/folder

window.resolveLocalFileSystemURL(myPath, function (dirEntry) {
     var directoryReader = dirEntry.createReader();
     directoryReader.readEntries(onSuccessCallback, onFailCallback);
});

function onSuccessCallback(entries){
  // The magic will happen here, check out entries with :
  // console.log(entries);
}

function onFailCallback(){
  // In case of error
}

我们将使用resolveLocalFileSystemURL检索目录项, 并在数组中获取文件夹的所有内容(包括文件夹和文件)。

2)在某物上显示内容

现在出现”困难的部分”, 以你想要的方式呈现条目!

例如, 使用ul标签和简单代码制作的非常简单的文件浏览器:

的HTML

<div>
  <ul id="select-demo">
    
  </ul>
</div>

Java脚本

/**
 * This function will draw the given path.
 */
function listPath(myPath){
  window.resolveLocalFileSystemURL(myPath, function (dirEntry) {
       var directoryReader = dirEntry.createReader();
       directoryReader.readEntries(onSuccessCallback, onFailCallback);
  });

  function onSuccessCallback(entries){
       for (i=0; i<entries.length; i++) {
           var row = entries[i];
           var html = '';         
           if(row.isDirectory){
                 // We will draw the content of the clicked folder
                 html = '<li onclick="listPath('+"'"+row.nativeURL+"'"+');">'+row.name+'</li>';
           }else{
                 // alert the path of file
                 html = '<li onclick="getFilepath('+"'"+row.nativeURL+"'"+');">'+row.name+'</li>';
           }
       
       }
                
        document.getElementById("select-demo").innerHTML = html;
  }

  function onFailCallback(e){
    console.error(e);
    // In case of error
  }
}

function getFilepath(thefilepath){
        alert(thefilepath);
}

当我们调用函数listPath(” file:// storage / 0″);该文件夹的所有内容将在UL元素中呈现。嵌套的LI元素, 单击后将根据其类型, 文件夹或文件执行其操作。

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?