2

我正在使用 PhoneGap 开发 iPhone 应用程序。

在这个应用程序中,我需要显示一个带有相机胶卷图片的屏幕,并且用户应该能够从中选择多张照片。

使用navigator.camera.getPictureI 可以显示所有图像,但用户只能从中选择一张图像。

返回的 imageURI 是 file://localhost/var/mobile/Applications/946FDEC2-E166-4209-94F8-5E2C70EEDA71/tmp/cdv_photo_010.jpg

并尝试使用文件 api 如下。

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){ 
    // success get file system
    var sdcard = fileSystem.root;
    sdcard.getDirectory("../../../Media/DCIM/100APPLE",
             {create:false, exclusive: false}, 
             function(dcim){
                 var directoryReader = dcim.createReader();
                 directoryReader.readEntries(function(entries){ 
                 // success get files and folders
                 for(var i=0; i<entries.length; ++i){
                     alert(entries[i].name);
                 }
       });
     }, function(error){
       switch(error.code){
          case FileError.NOT_FOUND_ERR : alert('NOT_FOUND_ERR');break;
          case FileError.SECURITY_ERR: alert('SECURITY_ERR');break;
          case FileError.ABORT_ERR: alert('ABORT_ERR');break;
          case FileError.NOT_READABLE_ERR: alert('NOT_READABLE_ERR');break;
          case FileError.ENCODING_ERR: alert('ENCODING_ERR');break;
          case FileError.NO_MODIFICATION_ALLOWED_ERR: alert('NO_MODIFICATION_ALLOWED_ERR');break;
          case FileError.INVALID_STATE_ERR: alert('INVALID_STATE_ERR');break;
          case FileError.SYNTAX_ERR: alert('SYNTAX_ERR');break;
          case FileError.INVALID_MODIFICATION_ERR: alert('INVALID_MODIFICATION_ERR');break;
          case FileError.QUOTA_EXCEEDED_ERR: alert('QUOTA_EXCEEDED_ERR');break;
          case FileError.TYPE_MISMATCH_ERR: alert('TYPE_MISMATCH_ERR');break;
          case FileError.PATH_EXISTS_ERR: alert('NOT_FOUND_ERR');break;
      }

});

这适用于模拟器。

但是当在 iPhone 中尝试时,它会显示错误并且 iPhone 中没有DCIM文件夹../../../Media

我的 iPhone 型号是iPhone 4S 16Gb with iOS 6.0

我想知道

  1. 这种方法有什么问题吗?
  2. 正确的路径是什么,而不是../../../Media/DCIM/100APPLE保存相机胶卷图片的路径?
  3. 是否有存储上述路径的元文件?
  4. 有没有其他方法可以实现这一点(从相机胶卷中选择多个文件的选项)?
4

1 回答 1

0

为此,有一些自定义库 ELCImagePickerController 和 AGImagePickerController。

https://github.com/elc/ELCImagePickerController

https://github.com/arturgrigor/AGImagePickerController

您可以使用其中之一。希望它会帮助你。

于 2012-11-16T07:08:23.103 回答