参考文章
https://github.com/driftyco/ng-cordova
http://ngcordova.com/docs/plugins/camera/
官方解释是既可以用来拍照也可以录视频(只试用了拍照功能)
首先,装插件 cordova plugin add org.apache.cordova.camera
然后,如果之前配置过ngcordova的话,就直接在控制器加上$cordovaCamera就好了
有两种方法获取拍照得到的图片
1,拍照返回64位的图片数据(destinationType: Camera.DestinationType.DATA_URL)
2,拍照返回图片文件的实际存储地址(destinationType: Camera.DestinationType.FILE_URI)
1,拍照返回64位的图片数据(成功了,可是图片数据即使100%的质量也很不清晰)
var options = { quality: 50, destinationType: Camera.DestinationType.DATA_URL, sourceType: Camera.PictureSourceType.CAMERA, allowEdit: true, encodingType: Camera.EncodingType.JPEG, targetWidth: 100, targetHeight: 100, popoverOptions: CameraPopoverOptions, saveToPhotoAlbum: false }; $cordovaCamera.getPicture(options).then(function(imageData) { var image = document.getElementById('myImage'); image.src = "data:image/jpeg;base64," + imageData; }, function(err) { // error });
var options = { destinationType: Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.CAMERA, }; $cordovaCamera.getPicture(options).then(function(imageURI) { var image = document.getElementById('myImage'); image.src = imageURI; }, function(err) { // error }); $cordovaCamera.cleanup().then(...); // only for FILE_URI
把这句话去了就正常了(暂时没看到这句话有什么影响) $cordovaCamera.cleanup().then(...); // only for FILE_URI
返回的图片地址信息为(file:///storage/emulated/0/DCIM/Camera/pic.jpg)
与选取图片文件插件方法返回的图片地址(data/data下)
不一样