2012-11-04 96 views
2

有誰知道是否可以使用phonegap/cordova從相冊中選擇多張照片?phonegap/cordova選擇多張照片

創建一個應用程序來使用文檔選擇一張照片相當容易,但它沒有記錄如何選擇多張照片?

也許我需要一些插件(iOS/Android)?還是解決方法?這個問題對我來說真的是一個阻礙,所以這樣一個體面的解決方案會很棒。

+0

嗨!你能解決這個問題嗎?我需要與您描述的IOS/Android手機APP相同的功能。問候 –

+0

你好,夥計!沒有可悲的沒有:(它仍然沒有在Phonegap中實現) –

+0

感謝您的回覆,我需要找到一個解決方法,然後:-(關心! –

回答

3

當前功能在覈心API中不可用。有一個增強請求打開然而。在這一點上,你最好的選擇是編寫一個插件。

+0

對JIRA票據的評論表明這個功能不會被添加到核心,而是一個插件,但他們不會說誰會寫這個插件:/ https://issues.apache.org/jira/browse/CB-1215 – talentedmrjones

3

對於多選我已經使用了文件插件,它遞歸遍歷所有目錄並找到圖像。它忽略了隱藏文件

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); 
} 

如果是有很多圖像的這段代碼可能需要時間來完成。

+0

如果可能的話給出更多細節... – Vini

相關問題