Cordova - 文件选择插件Multiple Documents Picker的使用详解(支持多文件选择)
作者:hangge | 2022-05-16 09:02
我在之前的文章中介绍了使用 camera 插件可以选择手机里的照片或者视频(点击查看)。但如果想要选择任意类型的文件,可以使用本文介绍的 multiple documents picker 插件,通过该插件可以打开系统自带的文件管理器选择任意类型文件,并且支持多选。下面演示如何安装使用该插件。
(2)可以看到 multiple documents picker 插件已经成功添加了:
(2)效果图如下:
1,添加插件
(1)我们要在“终端”中进入工程所在的目录,然后运行如下命令安装插件:
cordova plugin add cordova-plugin-multiple-documents-picker
(2)可以看到 multiple documents picker 插件已经成功添加了:

2,使用样例
(1)下面样例代码,点击页面上的“选择文件”按钮后,便会打开系统自带文件管理器,选择文件后将结果显示在页面上。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>hangge.com</title>
<script src="cordova.js"></script>
<script>
// 选择文件
function selectFile() {
//2表示选择所有文件,1表示只选择图片
multipleDocumentsPicker.pick(2, function(files) {
let fileArray = JSON.parse(files);
let str = "文件选择完毕,数量:" + fileArray.length;
for(file of fileArray) {
str += "<br>" + JSON.stringify(file);
}
document.getElementById("result").innerHTML=str;
}, function(error) {
document.getElementById("result").innerHTML= "文件选择失败:"+ error;
});
}
</script>
</head>
<body>
<button style="font-size:23px;" onclick="selectFile()">选择文件</button>
<div id="result" style="word-break: break-all;"></div>
</body>
</html>
(2)效果图如下:

附:每次只允许选择一个文件
multiple documents picker 是多文件选择插件,也就是说每次可以选择一个或者多个文件。如果我们想要限制它每次只能选择一个文件,可以修改 com.akeo.cordova.plugin 包下的 MultipleDocumentsPicker.java 插件类,将允许多文件选择配置项设置为 false 即可。
public void chooseFile (CallbackContext callbackContext, Integer type) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
if(type == 1) {
intent.setType("image/*");
} else {
intent.setType("*/*");
}
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false); // 设置为不支持多选
Intent chooser = Intent.createChooser(intent, "Select File");
cordova.startActivityForResult(this, chooser, type);
}
全部评论(0)