uni-app 微信隐私协议不能调起摄像头

uni-app 微信隐私协议不能调起摄像头

操作步骤:

  • 调试没问题,体验版开发板不行

预期结果:

  • 调试没问题,体验版开发板不行

实际结果:

  • 调试没问题,体验版开发板不行

bug描述:

  • 微信隐私协议过了,就是不能调用一天多了

Image Image

信息类别 内容
产品分类 uniapp/小程序/微信
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.95
第三方开发者工具版本号 1.06.2306010
基础库版本号 2.32.3
项目创建方式 HBuilderX

更多关于uni-app 微信隐私协议不能调起摄像头的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

我们也碰到类似问题,就是uni.chooseImage上传图片和拍照的功能出问题,这个貌似是微信的隐私协议导致的,不知道怎么解决

更多关于uni-app 微信隐私协议不能调起摄像头的实战教程也可以访问 https://www.itying.com/category-93-b0.html


你那边微信多少,加个微信 17717612860 大家一起研究互相沟通下怎么处理?有些函数在微信小程序中不能用了

确认下隐私协议配置有没有问题,审核通过了没, chooseImage对应的是“收集你选中的照片或视频信息”

全部审核都过了,有的手机不会有的又会。有个手机早上可以下午又不可以

回复 1***@163.com: 如果都可以选图片那就没问题。

uni-app 中,如果你在微信小程序中无法调起摄像头,可能是由于微信小程序的隐私协议限制。微信小程序在 iOS 和 Android 平台上对用户隐私有严格的要求,特别是涉及摄像头、麦克风等敏感权限时。

以下是一些可能导致无法调起摄像头的原因及解决方法:

1. 未获取用户授权

微信小程序在使用摄像头之前,必须获取用户的授权。如果用户没有授权,摄像头将无法调起。

解决方法:

  • 在调用摄像头之前,先检查用户是否已经授权。
  • 如果未授权,需要引导用户进行授权。
uni.authorize({
    scope: 'scope.camera',
    success() {
        // 用户已经授权,可以调起摄像头
        uni.chooseImage({
            sourceType: ['camera'],
            success(res) {
                console.log(res.tempFilePaths);
            }
        });
    },
    fail() {
        // 用户未授权,提示用户授权
        uni.showModal({
            title: '提示',
            content: '请授权使用摄像头',
            success(res) {
                if (res.confirm) {
                    uni.openSetting({
                        success(settingRes) {
                            console.log(settingRes.authSetting);
                        }
                    });
                }
            }
        });
    }
});

2. 隐私协议未同意

微信小程序在首次使用摄像头时,会弹出隐私协议弹窗,用户需要同意后才能继续使用。

解决方法:

  • 确保用户已经同意隐私协议。
  • 如果用户未同意,需要引导用户点击同意。
uni.getSetting({
    success(res) {
        if (!res.authSetting['scope.camera']) {
            uni.authorize({
                scope: 'scope.camera',
                success() {
                    // 用户同意授权,可以调起摄像头
                    uni.chooseImage({
                        sourceType: ['camera'],
                        success(res) {
                            console.log(res.tempFilePaths);
                        }
                    });
                },
                fail() {
                    // 用户未授权,提示用户授权
                    uni.showModal({
                        title: '提示',
                        content: '请授权使用摄像头',
                        success(res) {
                            if (res.confirm) {
                                uni.openSetting({
                                    success(settingRes) {
                                        console.log(settingRes.authSetting);
                                    }
                                });
                            }
                        }
                    });
                }
            });
        } else {
            // 用户已经授权,可以调起摄像头
            uni.chooseImage({
                sourceType: ['camera'],
                success(res) {
                    console.log(res.tempFilePaths);
                }
            });
        }
    }
});

3. iOS 平台限制

在 iOS 平台上,微信小程序对摄像头的使用有更严格的限制。如果用户拒绝授权,可能需要引导用户手动开启权限。

解决方法:

  • 引导用户手动开启摄像头权限。
uni.showModal({
    title: '提示',
    content: '请在系统设置中开启摄像头权限',
    success(res) {
        if (res.confirm) {
            uni.openSetting({
                success(settingRes) {
                    console.log(settingRes.authSetting);
                }
            });
        }
    }
});
回到顶部