我正在开发一个应该打开camera
或从照片库中选择图片的应用,问题是如果我测试应用build with ionic
(所以android-debug.apk)那里不是问题,但如果我测试signed apk
(我用android studio
签署了apk)如果我想从照片库中选择一个图像没有问题,但如果我想打开相机应用程序关闭并返回消息“应用程序”应用程序名称“被中断”。
我只在android上遇到这个问题,在iOS上运行正常。
我试图在谷歌搜索,但我没有发现任何东西,三周前我发布了一个相同的功能和相同的代码相同的应用程序,它的工作原理。
这是我打开相机的代码:
function capturePhoto() {
// Take picture using device camera and retrieve image as base64-encoded string
/*navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
destinationType: destinationType.DATA_URL }); */
var srcType = Camera.PictureSourceType.CAMERA;
var options = setOptions(srcType);
var func = createNewFileEntry;
/*if (selection == "camera-thmb") {
options.targetHeight = 100;
options.targetWidth = 100;
}*/
navigator.camera.getPicture(function cameraSuccess(imageUri) {
// Do something
}, function cameraError(error) {
console.debug("Unable to obtain picture: " + error, "app");
}, options);
}
我该如何解决这个问题?
谢谢
答案 0 :(得分:0)
始终尝试在此处使用服务。因为您必须在不同的控制器中使用它,
.factory('imageCapt', function($q, $cordovaCamera) {
var image_url = "";
var _ChoosePhoto = function () {
var options = {
quality: 75,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
allowEdit: true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 300,
targetHeight: 300,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false
};
return $cordovaCamera.getPicture(options).then(function (imageData) {
image_url = "data:image/jpeg;base64," + imageData;
return image_url;
}, function (err) {
alert(err);
// An error occured. Show a message to the user
});
};
var _GetImageUrl= function(){
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: true
};
return $cordovaCamera.getPicture(options).then(function (imageData) {
image_url ="data:image/jpeg;base64,"+ imageData;
return image_url;
}, function (err) {
alert(err);
// An error occured. Show a message to the user
});
// $ionicLoading.show({content: 'Loading', animation: 'fade-in',showBackdrop: true, maxWidth: 200,showDelay: 0});
};
return {
GetImageUrl : _GetImageUrl,
ChoosePhoto : _ChoosePhoto,
};
})
注意:如果您不想使用服务,请在控制器中正确使用选项,例如
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: true
};