uni-app 云打包 h5+拍照在android10以上系统无法唤起摄像头
uni-app 云打包 h5+拍照在android10以上系统无法唤起摄像头
操作步骤:
- uniapp调用h5+ camera.captureImage云打包后android10以下能唤起摄像头,android10以上不能唤起摄像头
预期结果:
- uniapp调用h5+ android10以上也能唤起摄像头
实际结果:
- uniapp调用h5+ camera.captureImage云打包后android10以下能唤起摄像头,android10以上不能唤起摄像头
bug描述:
- uniapp调用h5+ camera.captureImage云打包后android10以下能唤起摄像头,android10以上不能唤起摄像头
| 信息类别 | 内容 |
|----------------|--------------------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC操作系统版本 | windows10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 2.8.8 |
| 手机系统 | Android |
| 手机系统版本 | Android 10 |
| 手机厂商 | 华为 |
| 手机机型 | 华为mate |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 云打包 h5+拍照在android10以上系统无法唤起摄像头的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
我也碰到了这个问题,华为nova7 pro点击了没效果
更多关于uni-app 云打包 h5+拍照在android10以上系统无法唤起摄像头的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是Android 10权限策略变更导致的兼容性问题。从Android 10开始,系统对摄像头权限的管理更加严格,需要在配置文件中明确声明相机权限。
解决方案:
- 在manifest.json中配置权限:
{
"app-plus": {
"distribute": {
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>"
]
}
}
}
}
- 运行时动态申请权限:
// 在调用摄像头前先检查权限
plus.android.requestPermissions(['android.permission.CAMERA'], function(e){
if(e.deniedAlways.length > 0){
// 权限被永久拒绝
console.log('相机权限被拒绝');
}else{
// 调用摄像头
plus.camera.getCamera().captureImage();
}
}, function(e){
console.log('申请权限失败');
});

