有谁知道是否可以使用 phonegap/cordova 从相册中选择多张照片?
使用文档创建一个选择一张照片的应用程序相当容易,但没有记录如何选择多张照片???
也许我需要一些插件(iOS/Android)?还是解决方法?这个问题对我来说真的是一个阻碍,所以一个体面的解决方案会很棒。
有谁知道是否可以使用 phonegap/cordova 从相册中选择多张照片?
使用文档创建一个选择一张照片的应用程序相当容易,但没有记录如何选择多张照片???
也许我需要一些插件(iOS/Android)?还是解决方法?这个问题对我来说真的是一个阻碍,所以一个体面的解决方案会很棒。
目前该功能在核心 API 中不可用。然而,有一个增强请求打开。在这一点上,你最好的选择是编写一个插件。
对于多项选择,我使用了文件插件,它递归地遍历所有目录并找到图像。它忽略隐藏文件
var numDirs = 0;
var numFiles = 0;
var ImageFilePath = new Array();
function GetAllImageFromSD() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
}
function onFileSystemSuccess(fileSystem) {
fileSystem.root.getDirectory("/sdcard", { create: false, exclusive: false }, getDirSuccess, fail);
}
function getDirSuccess(dirEntry) {
var directoryReader = dirEntry.createReader();
// Get a list of all the entries in the directory
directoryReader.readEntries(readerSuccess, fail);
}
var readerTimeout = null, millisecondsBetweenReadSuccess = 1000;
function readerSuccess(entries) {
String.prototype.startsWith = function (str)
{ return (this.match("^" + str) == str) }
var i = 0, len = entries.length;
for (; i < len; i++) {
if (entries[i].isFile) {
if ((entries[i].name.indexOf(".jpeg") != -1) || (entries[i].name.indexOf(".png") != -1) || (entries[i].name.indexOf(".jpg") != -1)) {
var fileName = entries[i].name;
if (!fileName.startsWith(".")) {
numFiles++;
ImageFilePath.push(entries[i].fullPath)
// console.log("file "+entries[i].fullPath)
}
}
} else if (entries[i].isDirectory) {
numDirs++;
// console.log("directory "+entries[i].name)
var dirName = entries[i].name;
if (!dirName.startsWith(".")) {
getDirSuccess(entries[i]);
}
}
if (readerTimeout) {
window.clearTimeout(readerTimeout);
}
}
if (readerTimeout) {
window.clearTimeout(readerTimeout);
}
readerTimeout = window.setTimeout(weAreDone, millisecondsBetweenReadSuccess);
}
function weAreDone() {
console.log("numDirs " + numDirs);
console.log("numFiles " + numFiles);
var a = "";
var GalleryImageTag = "";
GalleryImageTag = "<div class='spacingbox'></div> ";
for (var j = 0; j < ImageFilePath.length; j++) {
GalleryImageTag += "<div class='divgallery divcolor'>"
var ChkId = "chk" + j;
GalleryImageTag += "<img class='imggallery' id='" + j + "' src=' " + ImageFilePath[j] + "'alt=''/>";
GalleryImageTag += "<input id='" + ChkId + "' name='" + ChkId + "' type='checkbox' value='" + ImageFilePath[j] + "' class='allignchk'>";
GalleryImageTag += "</div>";
}
$('#ImageContainer').html('');
$('#ImageContainer').append(GalleryImageTag);
$('#GalleryView').popup("open");
numDirs = 0;
numFiles = 0;
ImageFilePath = [];
console.log(GalleryImageTag);
}
如果有很多图像,此代码可能需要一些时间才能完成。