Cordova版本是:6.3.0
Cordova Android版本是:5.0.0
相机插件版本:cordova-plugin-camera 2.2.0“相机”
我的代码适用于Android 5.0和Android 6.0的多个设备,但它不支持Android 4.4,Android 4,3等。
在Android 4.4和4.3中,相机插件会触发相机和库,但它不会进入.then(函数(ImageData){..}它会进入错误功能。
$scope.gallery = function() {
var options = {
quality : 80,
destinationType : Camera.DestinationType.DATA_URL,
sourceType : Camera.PictureSourceType.PHOTOLIBRARY,
allowEdit : false,
encodingType: Camera.EncodingType.JPEG,
popoverOptions: CameraPopoverOptions,
targetWidth: 500,
targetHeight: 500,
saveToPhotoAlbum: true,
correctOrientation: true
};
$cordovaCamera.getPicture(options).then(function(imageData) {
console.log('image');
imaged = imageData;
$scope.statusMessagePhoto = "photo saved ✓";
}, function(error) {
console.log(error.message);
alert(error.message);
});
};
$scope.savephoto = function(){
var options = {
quality : 80,
destinationType : Camera.DestinationType.DATA_URL,
sourceType : Camera.PictureSourceType.CAMERA,
allowEdit : false,
encodingType: Camera.EncodingType.JPEG,
popoverOptions: CameraPopoverOptions,
targetWidth: 500,
targetHeight: 500,
saveToPhotoAlbum: true,
correctOrientation: true
};
$cordovaCamera.getPicture(options).then(function(imageData) {
imaged = imageData;
$scope.statusMessagePhoto = "photo saved ✓";
} , function(error) {
console.log(error.message);
alert(error.message);
});
};
当我按下savephoto按钮相机打开,但在控制台(日志)中,我得到错误“未定义”和警报,甚至在保存或选择我想要的照片之前。
在Android 4.3或4.4上有任何人遇到过相同的错误。我重复这段代码在Android 5.0及更高版本上运行完美。
答案 0 :(得分:2)
<强>解决!强>
从config.xml中删除此行
<preference name="AndroidLaunchMode" value="singleInstance"/>