3

使用cordova 2.8.1 我正在尝试用photolibrary 做一个camera.getPicture。它似乎适用于android,但不适用于iOS。下面是我如何调用 getPicture 代码。在带有 iOS 6 的 iPhone 4s 上,它允许我选择图像,但一旦完成,就会调用错误回调,参数为 null

var options = {
          quality : 30,
          destinationType : Camera.DestinationType.FILE_URI,
          sourceType : Camera.PictureSourceType.PHOTOLIBRARY,
          correctOrientation: true,
          targetWidth: 800,
          targetHeight: 800
    };

navigator.camera.getPicture(this.captureSuccessPre, this.captureError, options);

有人告诉我在 console.logs 周围添加一个超时。在 phonegaps 文档中,它声明围绕警报这样做。下面是我的错误回调。记录 [error null]

captureError: function(error){
    setTimeout(function(){
        console.log("error " + error); //logs error null
    }, 100);
}

有人有想法么。我已经挣扎了几天。如果它有帮助的话,这段代码可以完美地使用

sourceType : Camera.PictureSourceType.CAMERA,
4

3 回答 3

9

我也有完全一样的问题; 似乎与 DestinationType.FILE_URI 有关。

尝试这个:

var options = {
      quality : 30,
      destinationType: navigator.camera.DestinationType.NATIVE_URI,
      sourceType : Camera.PictureSourceType.PHOTOLIBRARY,
      correctOrientation: true,
      targetWidth: 800,
      targetHeight: 800
}; 
于 2013-06-18T08:56:20.177 回答
2

看起来 2.8.0 中有一个错误 - 如果升级到 2.9.0,它会修复它([CB-3757] camera.getPicture from photolib 在 iOS 上失败 - https://github.com/phonegap/phonegap/blob/ 2.9.0/更改日志

于 2013-07-19T12:40:52.413 回答
0

试试这个它会帮助你

function uploadFromGallery(){
      navigator.camera.getPicture(uploadPhoto,function(message){
            console.log('get picture failed'); },
       {quality: 75,
          destinationType: navigator.camera.DestinationType.FILE_URI,
          sourceType:navigator.camera.PictureSourceType.PHOTOLIBRARY,
          allowEdit:true, 
          targetWidth: 100,
          targetHeight: 100 
      }); 
}
于 2014-01-16T05:10:24.047 回答