Phonegap Camera 来保存拍摄的照片

来源:互联网 发布:中国网络信息发展趋势 编辑:程序博客网 时间:2024/04/29 16:11

在 Phonegap Camera API 里通过 navigator.camera.getPicture 方法可以拍照并获取照片数据,一般调用拍照功能都是用这个方法,如果想把拍摄的照片保存到相册里,根据API提供的选项,我们一般都会设置 saveToPhotoAlbum:true ,参见代码:

navigator.camera.getPicture(function(){}, function(){}, {    quality: 50,    saveToPhotoAlbum: true});

在 Android 上运行代码,在相册里我们会发现并没有把拍摄的照片保存下来,这是为什么呢?

通过google,找到几个有用的回答:

1、http://stackoverflow.com/questions/8514560/ios-phonegap-camera-cant-save-image-to-photo-library/17228081#17228081

2、http://stackoverflow.com/questions/13060397/saving-a-png-or-jpg-image-to-photos-in-ios-via-phonegap

3、http://stackoverflow.com/questions/15952171/using-cordova-phonegap-to-save-an-image-taken-from-the-phone-camera-windows-phon

第1条是建议用 navigator.device.capture.captureImage 方法来实现;

第2条建议是用 Canvas2ImagePlugin.js 插件来实现;

第3条才是真正说到问题所在,我们的代码运行失败的原因是因为选项中的 destinationType 参数默认值是 Camera.DestinationType.DATA_URI 的问题,正确设置应该是 Camera.DestinationType.FILE_URI

所以正确的代码如下:

navigator.camera.getPicture(function(){}, function(){}, {    quality: 50,    saveToPhotoAlbum: true,    destinationType: Camera.DestinationType.FILE_URI});
0 0