uni-app 小米9SE拍照上传重启app 影响用户体验

uni-app 小米9SE拍照上传重启app 影响用户体验

开发环境 版本号 项目创建方式
Windows windows 10 专业版 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:windows 10 专业版

HBuilderX类型:正式

HBuilderX版本号:3.1.2

手机系统:Android

手机系统版本号:Android 9.0

手机厂商:小米

手机机型:MI9SE   MIUI10.3稳定版

页面类型:vue

打包方式:云端

操作步骤:
- 一直重启希望官方可以解决一下或者有什么办法可以暂时的使用也可以

预期结果:
- 一直重启希望官方可以解决一下或者有什么办法可以暂时的使用也可以

实际结果:
- 一直重启希望官方可以解决一下或者有什么办法可以暂时的使用也可以

bug描述:
- 调用手机拍照就重启app,从相册调用的时候就不会出现问题

更多关于uni-app 小米9SE拍照上传重启app 影响用户体验的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 小米9SE拍照上传重启app 影响用户体验的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的Android权限适配问题。在Android 9.0及以上版本中,相机权限的使用方式发生了变化,特别是小米MIUI系统对权限管理更加严格。

问题分析:

  1. 拍照功能需要同时申请相机权限和存储权限
  2. 小米MIUI系统对权限弹窗有特殊处理机制
  3. 权限申请失败或超时可能导致应用重启

临时解决方案:

  1. 权限配置检查 在manifest.json中确保已配置必要权限:
{
    "permissions": {
        "CAMERA": {
            "request": "once"
        },
        "WRITE_EXTERNAL_STORAGE": {
            "request": "once"
        }
    }
}
  1. 动态权限申请优化 在调用拍照前先检查并申请权限:
// 检查权限状态
uni.authorize({
    scope: 'scope.camera',
    success: () => {
        // 权限已授予,执行拍照
        this.takePhoto();
    },
    fail: () => {
        // 引导用户手动开启权限
        uni.showModal({
            content: '需要相机权限才能拍照',
            success: (res) => {
                if (res.confirm) {
                    uni.openSetting();
                }
            }
        });
    }
});
  1. 使用条件编译针对Android处理
// #ifdef APP-PLUS
if (plus.os.name.toLowerCase() === 'android') {
    // Android特殊处理
    this.androidTakePhoto();
} else {
    this.takePhoto();
}
// #endif
  1. 拍照参数调整 设置合适的图片质量参数,避免内存溢出:
uni.chooseImage({
    count: 1,
    sourceType: ['camera'],
    sizeType: ['compressed'], // 使用压缩模式
    success: (res) => {
        // 处理图片
    }
});
回到顶部