Ionic framework 离子相机插件getPicture被忽略
这让我很害怕。我有一个简单的应用程序,你按下一个按钮,它会拍一张照片,然后用户可以做其他事情,但问题是有时getPicture功能被忽略,相机永远不会显示,下面是一些信息和简单的代码:Ionic framework 离子相机插件getPicture被忽略,ionic-framework,plugins,cordova-plugins,Ionic Framework,Plugins,Cordova Plugins,这让我很害怕。我有一个简单的应用程序,你按下一个按钮,它会拍一张照片,然后用户可以做其他事情,但问题是有时getPicture功能被忽略,相机永远不会显示,下面是一些信息和简单的代码: $ ionic info Your system information: Cordova CLI: 6.5.0 Ionic CLI Version: 2.2.2 Ionic App Lib Version: 2.2.1 ios-deploy version: 1.9.1 ios-sim version:
$ ionic info
Your system information:
Cordova CLI: 6.5.0
Ionic CLI Version: 2.2.2
Ionic App Lib Version: 2.2.1
ios-deploy version: 1.9.1
ios-sim version: 5.0.13
OS: macOS Sierra
Node Version: v6.10.2
Xcode version: Xcode 8.3.2 Build version 8E2002
Installed platforms:
android 6.0.0
ios 4.3.1
已安装插件
$ ionic plugin ls
WARN: ionic.project has been renamed to ionic.config.json, please rename it.
com.googlemaps.ios 2.1.1 "Google Maps SDK for iOS"
cordova-plugin-camera 2.4.0 "Camera"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.3 "Console"
cordova-plugin-device 1.1.2 "Device"
cordova-plugin-file 4.3.1 "File"
cordova-plugin-file-transfer 1.6.1 "File Transfer"
cordova-plugin-geolocation 2.4.2 "Geolocation"
cordova-plugin-googlemaps 1.4.0 "phonegap-googlemaps-plugin"
cordova-plugin-screen-orientation 1.4.2 "Screen Orientation"
cordova-plugin-splashscreen 3.2.2 "Splashscreen"
cordova-plugin-statusbar 2.1.3 "StatusBar"
cordova-plugin-whitelist 1.2.2 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"
然后我们有一个带有这个按钮的HTML
<button class="button button-full button-positive" ng-click="take_picture()">Take photo</button>
希望有人能帮忙。
最好的
编辑 在xCode控制台上跳过相机时,我得到以下结果:
警告:尝试在已显示的手机上显示避免使用DATA\u URL destinationType,并将其替换为FILE\u URI,因为它可能会在旧手机上消耗大量内存。当您使用FILE_URI作为destinationType时,可以使用cordova FILE plugin将映像传输到外部/内部存储器,然后可以调用映像src链接到本地设备url
编辑
相机插件和方向插件不是最新的。所以需要将其从2.4.0版“摄像头”和1.4.2版“屏幕方向”更新为2.4.1版“摄像头”和2.0.1版“屏幕方向”但这在iphone 7上发生,你认为这可能是该手机的内存问题吗?超时是一种黑客行为,它可以避免用户在拍照后多次按下按钮,然后调用回调,这意味着图像将完全返回。您不需要在超时时包装hideloading。如果仅使用文件URI,则使用来自cameracleanup,如果使用数据URL,则不需要。谢谢。我发现在XCode控制台上,当跳过相机时,它会返回以下警告:尝试在已呈现的屏幕上呈现尝试在拍照功能的结束行添加返回true。谢谢,我尝试了,但仍然得到:警告:尝试在已呈现的屏幕上呈现
$scope.take_picture = function()
{
screen.lockOrientation('portrait');
var options = {
quality: 25,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA,
encodingType: Camera.EncodingType.JPEG,
saveToPhotoAlbum: false,
correctOrientation: true,
allowEdit: false,
targetHeight: 200,
targetwidth: 200
};
$cordovaCamera.getPicture(options).then(function(imageURI) {
$scope.image_uri = imageURI;
$scope.marcar_gps();
$cordovaCamera.cleanup();
}, function(err) {
console.log('error ',err);
$cordovaCamera.cleanup();
$ionicLoading.hide();
});
};