到目前为止, 还没有太多可定制的文件浏览器。例如, 此插件仅适用于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/folderwindow.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检索目录项, 并在数组中获取文件夹的所有内容(包括文件夹和文件)。
【列出Cordova中的android目录(Filebrowser&Folderbrowser)】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元素, 单击后将根据其类型, 文件夹或文件执行其操作。
推荐阅读
- 如何验证cordova版本,cordova项目的平台版本以及如何更新它们
- net::ERR_CACHE_MISS(无法在Cordova Android中加载外部URL)
- 解决方案错误(在Android SDK中找不到gradle包装器。可能需要更新你的Android SDK)
- 解决android的本地路径(content://)如果resolveLocalFileSystemURL不工作
- 5个最佳的免费RTF编辑器javascript和jQuery插件
- 5+最好的javascript和jQuery颜色选择器插件
- 5+最佳的javascript和jQuery照片放大镜插件
- 5个最好的javascript免费图表库
- GPS Android - 只定位一次