uni-app iOS 18.1版本无法选择相册图片

发布于 1周前 作者 ionicwang 来自 Uni-App

uni-app iOS 18.1版本无法选择相册图片

selectImage() {  
    var that = this  
    var count = this.maxImgCount;  
    var imageCount = this.pickImages.length  
    var otherCount = count - imageCount;  
    if (otherCount <= 0) {  
        uni.showToast({  
            icon: 'none',  
            title: '最多' + count + '张截图'  
        })  
        return;  
    }  
    uni.chooseImage({  
        count: otherCount,  
        success(res) {  
            console.log("选择的图片: " + JSON.stringify(res));  
            that.uploadAllImages(res.tempFilePaths)  
        },  
        complete(res) {  
            console.log("选择的完成");  
        },  
        fail(res) {  
            console.log("选择的失败: " + JSON.stringify(res));  
        }  
    })  
},

iOS 18.x 进入选择相册后 一直显示在处理中,而且页面没有出现 确认按钮


2 回复

https://ask.dcloud.net.cn/question/199774 这个帖子统一处理 ios18 到问题,如果不是一个问题,请回复我


针对您提到的uni-app在iOS 18.1版本上无法选择相册图片的问题,这通常与权限请求或API调用有关。在iOS系统中,尤其是从iOS 14开始,苹果加强了对用户隐私的保护,应用需要明确请求并获得用户的许可才能访问相册。以下是一些可能帮助解决问题的代码示例和检查点:

1. 确保已请求相册权限

在uni-app中,您需要在manifest.json文件中声明所需的权限,并在代码中动态请求权限。尽管manifest.json主要用于Android权限声明,iOS的权限请求主要通过代码实现。

在代码中请求权限(示例使用Vue.js语法)

// 引入uni的权限管理模块
const permission = uni.getSetting();

if (!permission.authSetting['scope.album']) {
    uni.authorize({
        scope: 'scope.album',
        success() {
            console.log('用户同意授权访问相册');
            // 这里可以调用选择相册图片的API
            chooseImage();
        },
        fail() {
            console.log('用户拒绝授权访问相册');
            // 提示用户授权或处理拒绝情况
        }
    });
} else {
    // 用户已经授权,直接调用选择相册图片的API
    chooseImage();
}

function chooseImage() {
    uni.chooseImage({
        count: 9, // 默认9
        sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
        sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
        success(res) {
            const tempFilePaths = res.tempFilePaths;
            console.log(tempFilePaths);
        },
        fail(err) {
            console.error('选择图片失败', err);
        }
    });
}

2. 检查Info.plist配置

确保在Xcode的Info.plist文件中添加了必要的权限描述键,如NSPhotoLibraryUsageDescriptionNSCameraUsageDescription(如果使用了相机)。

<key>NSPhotoLibraryUsageDescription</key>
<string>应用需要访问您的相册以选择图片</string>
<key>NSCameraUsageDescription</key>
<string>应用需要访问您的相机以拍摄照片</string>

3. 调试和测试

  • 使用Xcode运行您的uni-app项目,查看控制台是否有权限请求失败的错误信息。
  • 确保在真机上测试,模拟器可能无法完全模拟真实的权限请求行为。

通过上述步骤,您应该能够定位并解决uni-app在iOS 18.1上无法选择相册图片的问题。如果问题依旧存在,建议检查是否有最新的uni-app框架更新或者iOS系统的特定限制。

回到顶部