uniapp相机无反应
检查权限设置
确保应用已获取相机权限。在manifest.json中配置权限声明,Android需添加<uses-permission android:name="android.permission.CAMERA"/>,iOS需在Privacy - Camera Usage Description中添加描述。运行时需动态请求权限,可通过uni.authorize或uni.getSetting检查权限状态。
确认API调用方式
使用uni.chooseImage或uni.createCameraContext时需检查参数是否正确。例如:

uni.chooseImage({
count: 1,
sourceType: ['camera'],
success: (res) => {
console.log(res.tempFilePaths);
},
fail: (err) => {
console.error('调用失败', err);
}
});
排查真机兼容性问题
部分安卓机型可能因硬件或系统限制导致相机无法启动。测试不同设备,检查控制台日志是否有报错(如Camera not found)。可尝试使用<camera>组件替代API调用:
<camera device-position="back" flash="off" class="camera"></camera>
检查H5环境适配
H5端需浏览器支持getUserMedia API,且域名需为HTTPS。在uni-app配置中启用h5->useNativeCanvas选项可能解决部分兼容性问题。

查看原生层配置
Android平台需确认AndroidManifest.xml中未设置android:hardwareAccelerated="false"。iOS需确保Info.plist包含NSCameraUsageDescription字段。
调试日志分析
通过uni.getSystemInfo获取设备信息,确认相机功能支持状态。捕获错误时输出完整错误对象:
uni.createCameraContext().startRecord({
success: () => {},
fail: (e) => console.log('错误详情:', e.errMsg || e)
});




