cordova-plugin-camera 在 IOS 中不工作
cordova-plugin-camera not working in IOS
我正在使用 ionic 为 Android 和 IOS 开发混合应用程序。
虽然从 Android 打开相机工作正常,但我无法从 IOS 设备打开相机。
我为此安装了相应的插件
cordova plugin add cordova-plugin-camera
.
接下来我在 cordova.js
行之前将 ng-cordova.js
添加到 index.html
中。
也在 app.js
我包括 angular.module('starter', ['ionic', 'ngCordova']
在Controller.js中添加了$cordovaCamera
我的代码为
navigator.camera.getPicture(onSuccess,onFail, {
quality:90
destinationType:Camera.DestinationType.DATA_URL,
sourceType:Camera.PictureSourceType.CAMERA,
allowEdit:false,
encodingType:Camera.EncodingType.JPEG,
popoverOptions:CameraPopoverOptions,
saveToPhotoAlbum:true,
correctOrientation:true
})
function onSuccess(imageURI){
$rootScope.$broadcast("ShowAttachmentModal",imageURI);
}
function onSuccess(message){
alert('Failed'+message);
}
此代码在 Android 中完美运行,但在 IOS 中打开相机时无法运行。
@MartinP,而不是正在弃用的 ngCordova,看看您是否可以使用替代库 Ionic-Natve (http://ionicframework.com/docs/v2/native/camera/)。
然后试试这个代码。
function takePicture() {
var opts = {
quality: 90,
encodingType: $cordovaCamera.EncodingType.JPEG,
destinationType: $cordovaCamera.DestinationType.DATA_URL,
correctOrientation: true,
allowEdit: true,
targetWidth: 300,
targetHeight: 300
};
$cordovaCamera.getPicture(opts).then(function (imageData) {
$rootScope.$broadcast("ShowAttachmentModal",imageData);;
}, function (err) {
$log.error(err);
});
}
Cordova插件同理。您需要将 $cordovaCamera 注入您的控制器。一旦成功,您就可以使用这些选项了。您可能知道,DATA_URL 选项 returns 是一个 Base64 编码的字符串。因此,要将其设置为图像源,您需要在 imageData 前面加上 'data:image/jpeg;base64,'
.
我正在使用 ionic 为 Android 和 IOS 开发混合应用程序。
虽然从 Android 打开相机工作正常,但我无法从 IOS 设备打开相机。
我为此安装了相应的插件
cordova plugin add cordova-plugin-camera
.
接下来我在 cordova.js
行之前将 ng-cordova.js
添加到 index.html
中。
也在 app.js
我包括 angular.module('starter', ['ionic', 'ngCordova']
在Controller.js中添加了$cordovaCamera
我的代码为
navigator.camera.getPicture(onSuccess,onFail, {
quality:90
destinationType:Camera.DestinationType.DATA_URL,
sourceType:Camera.PictureSourceType.CAMERA,
allowEdit:false,
encodingType:Camera.EncodingType.JPEG,
popoverOptions:CameraPopoverOptions,
saveToPhotoAlbum:true,
correctOrientation:true
})
function onSuccess(imageURI){
$rootScope.$broadcast("ShowAttachmentModal",imageURI);
}
function onSuccess(message){
alert('Failed'+message);
}
此代码在 Android 中完美运行,但在 IOS 中打开相机时无法运行。
@MartinP,而不是正在弃用的 ngCordova,看看您是否可以使用替代库 Ionic-Natve (http://ionicframework.com/docs/v2/native/camera/)。
然后试试这个代码。
function takePicture() {
var opts = {
quality: 90,
encodingType: $cordovaCamera.EncodingType.JPEG,
destinationType: $cordovaCamera.DestinationType.DATA_URL,
correctOrientation: true,
allowEdit: true,
targetWidth: 300,
targetHeight: 300
};
$cordovaCamera.getPicture(opts).then(function (imageData) {
$rootScope.$broadcast("ShowAttachmentModal",imageData);;
}, function (err) {
$log.error(err);
});
}
Cordova插件同理。您需要将 $cordovaCamera 注入您的控制器。一旦成功,您就可以使用这些选项了。您可能知道,DATA_URL 选项 returns 是一个 Base64 编码的字符串。因此,要将其设置为图像源,您需要在 imageData 前面加上 'data:image/jpeg;base64,'
.