uni-app 苹果图片选择时 APP被KILL掉

uni-app 苹果图片选择时 APP被KILL掉

项目 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows 10 家庭中文版
HBuilderX类型 正式
HBuilderX版本号 3.1.7
手机系统 iOS
手机系统版本号 IOS 14
手机厂商 苹果
手机机型 iPhone 6s plus
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

示例代码:

uni.chooseImage({
count: 1, //默认9
sizeType: ['original'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success: (res) => {
console.log(111111111111111);
fail: (e) => {  
}  
});  

操作步骤:

uni.chooseImage({
count: 1, //默认9
sizeType: ['original'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success: (res) => {
console.log(111111111111111);
fail: (e) => {  
}  
});  

预期结果:

可以正常选择图片

实际结果:

现在APP直接被KILL掉

bug描述:

使用 uni.chooseImage API选择图片时, 页面弹出信息见附件, 选择"前往系统设置" 或"继续访问部分图片"后, APP直接被KILL掉


更多关于uni-app 苹果图片选择时 APP被KILL掉的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

先用官方示例Demo 跑一下 试试 看看这个手机是否正常
列一下 iOS14 的哪个版本

更多关于uni-app 苹果图片选择时 APP被KILL掉的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是iOS 14系统引入的相册权限管理机制导致的。当用户选择"前往系统设置"或"继续访问部分图片"时,系统会中断当前应用进程来处理权限设置,造成APP被强制关闭。

解决方案:

  1. 权限预检测:在调用uni.chooseImage前先检查相册权限状态:
uni.authorize({
    scope: 'scope.writePhotosAlbum',
    success() {
        // 已有权限,执行选择图片
        uni.chooseImage({...})
    },
    fail() {
        // 无权限,引导用户授权
        uni.showModal({
            content: '需要相册权限才能选择图片',
            success: (res) => {
                if (res.confirm) {
                    uni.openSetting() // 打开设置页面
                }
            }
        })
    }
})
  1. 错误处理优化:在fail回调中添加具体错误处理:
fail: (e) => {
    console.log('选择图片失败:', e)
    if(e.errMsg.includes('auth deny')){
        // 处理权限拒绝情况
    }
}
  1. 内存管理:iPhone 6s Plus内存较小,选择原图时可能因内存不足导致崩溃。建议:
sizeType: ['compressed'] // 使用压缩图替代原图
回到顶部