// #ifdef APP-PLUS
const res = await new Promise((resolve, reject) => {
plus.android.requestPermissions(["android.permission.CAMERA","android.permission.READ_EXTERNAL_STORAGE","android.permission.READ_MEDIA_IMAGES","android.permission.READ_MEDIA_VISUAL_USER_SELECTED","android.permission.READ_MEDIA_VIDEO","android.permission.RECORD_AUDIO"], (res) => {
console.log("权限请求结果", res);
if (res.granted.length > 0) {
resolve(true);
} else {
reject(false);
}
});
});
if (!res) {
return;
}
// #endif
uni.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
success: (result) => {
console.log("chooseImage success", result);
uni.showModal({
title: '提示',
content: result.tempFilePaths[0],
showCancel: false,
success: (result) => {
console.log("showModal success", result);
},
});
},
});
};
或者用
// #ifdef APP-PLUS
const res = await new Promise((resolve, reject) => {
plus.android.requestPermissions(["android.permission.CAMERA","android.permission.READ_EXTERNAL_STORAGE","android.permission.READ_MEDIA_IMAGES","android.permission.READ_MEDIA_VISUAL_USER_SELECTED","android.permission.READ_MEDIA_VIDEO","android.permission.RECORD_AUDIO"], (res) => {
console.log("权限请求结果", res);
if (res.granted.length > 0) {
resolve(true);
} else {
reject(false);
}
});
});
if (!res) {
return;
}
const camera = plus.camera.getCamera();
camera.captureImage((path) => {
console.log("captureImage success", path);
uni.showModal({
title: '提示',
content: path,
showCancel: false,
success: (result) => {
console.log("showModal success", result);
},
});
}, (error) => {
console.log("captureImage error", error);
});
// #endif
2 个回复
AI问答小助手 - AI智答引擎,优解尽在掌握!
根据知识库内容,小米手机(MIUI13/14/Android12)调用相机闪退的问题,主要是由于系统内存不足导致。建议的解决方案:
使用nvue页面并内嵌自定义相机插件(原生或UTS插件),避免系统相机回收问题。相关分析可参考技术报告。
检查应用内存占用,优化应用性能。
如需上架Google Play,注意添加相册访问声明。
临时文件路径需调用saveFile持久化保存。
内容为 AI 生成,仅供参考
Ask小助手
该bug反馈内容基本完整,标题、描述、代码示例、复现步骤、预期与实际结果、分类信息均具备,但可补充错误日志及更详细复现流程(如是否每次必现、是否需特定操作触发)。代码示例可直接运行,但未说明调用上下文(如页面生命周期位置)。
经核查知识库,该问题成立且有明确依据:知识库指出"在部分低端机如红米上拍照闪退,拍照调用的是系统相机,当系统内存不足,rom为了给相机activity分配内存而把app的主activity回收了",与用户反馈的小米Redmi Note系列设备(MIUI 13/14, Android 12)现象高度吻合。相关分析报告见此处。用户HBuilderX 4.85版本未完全覆盖此场景,因知识库显示该问题在后续版本中通过推荐使用nvue内嵌自定义相机插件解决。
非基本概念问题:用户已正确申请CAMERA等必要权限,代码逻辑无误,问题仅出现在特定厂商ROM(MIUI内存管理机制),属Android平台兼容性范畴。uni-app的
uni.chooseImage和plus.camera在低端机易受系统回收机制影响,而知识库明确建议"使用nvue页面并内嵌自定义相机插件"。建议用户:1) 尝试改用nvue页面集成原生/uts相机插件;2) 更新至HBuilderX最新正式版(当前4.85可能未包含针对性修复);3) 检查是否因MIUI后台限制导致,可引导用户关闭电池优化设置。
要回复问题请先登录或注册
公告
更多>相关问题