在使用 Ionic 3 允许系统权限后,Android 设备相机未打开

Posted

技术标签:

【中文标题】在使用 Ionic 3 允许系统权限后,Android 设备相机未打开【英文标题】:Android device camera is not opening, after allowing system permission with Ionic 3 【发布时间】:2019-07-05 18:31:41 【问题描述】:

我想在我的应用中使用相机插件。我请求了摄像头权限,但允许摄像头后无法打开

在关注设备上试用 - 摩托 g4 加 安卓版本 7.0

以下是离子信息

cli 包:(C:\Users\username\AppData\Roaming\npm\node_modules) @ionic/cli-utils:1.19.3 离子(离子 CLI):3.20.1

全局包: 科尔多瓦(科尔多瓦 CLI):8.1.2(科尔多瓦-lib@8.1.1)

本地包: @ionic/app-scripts:3.2.0 Cordova 平台:android 7.0.0 浏览器 5.0.4 离子框架:离子角 3.9.2

系统: Android SDK 工具:25.2.5 节点:v8.11.1 npm:5.6.0 操作系统:Windows 10

环境变量: ANDROID_HOME : C:\android-sdk-win

其他: 后端:亲

以下是我的代码

openCamera()

    this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(
        result => 
            alert(result.hasPermission);
            if(!result.hasPermission) 
                this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA)
                .then( cam => 
                    alert('permission result '+ JSON.stringify(cam) );
                    this.capturingPicture();
                )
                .catch( error => 
                    alert('permission error occured '+ JSON.stringify(error) );
                );
             else 
                this.capturingPicture();
            
        ,
        err => 
            this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA); 
        );

capturingPicture 功能警报正在显示,但设备摄像头未打开。

capturingPicture()
    alert('capturingPicture');

    const options: CameraOptions = 
        mediaType: this.camera.MediaType.PICTURE,
        quality : 75, 
                   destinationType : this.camera.DestinationType.DATA_URL, 
                   sourceType : this.camera.PictureSourceType.CAMERA, 
                  allowEdit : true,
                  encodingType: this.camera.EncodingType.JPEG,
                  targetWidth: 300,
                  targetHeight: 300,
                 saveToPhotoAlbum: false
    ;

    this.camera.getPicture(options).then((imageData) => 
        let base64Image = 'data:image/jpeg;base64,' + imageData;
        alert('image data => '+ imageData);
    , (err) => 
        // Handle error
        alert('get picture error => '+ err);
    );

根据文档,编写了代码,但仍然不知道是代码/插件/版本/操作系统等问题。 请指导我。

谢谢。

【问题讨论】:

【参考方案1】:

使用以下命令在 ionic 3 中安装摄像头

npm install --save @ionic-native/camera@4

【讨论】:

以上是关于在使用 Ionic 3 允许系统权限后,Android 设备相机未打开的主要内容,如果未能解决你的问题,请参考以下文章

text 无法安装@ ionic / app-scripts @允许的最新权限

Ionic 3 - Laravel - 不向客户端发送允许 CORS 的标头

Cordova/Ionic 2 相机权限问题 iOS 10.2.1

安装 facebook-connect 插件后 Ionic 构建失败

在 config.xml 中设置使用说明后,Ionic IOS 相机权限仍然被拒绝

十进制一位输入类型仅数字 Ionic 3 最新版本 (3.9.2) 我正在使用