uni-app ios版本18.1.1使用uni.chooseImage选择图片时图库照片显示不全 未显示最近添加的照片 导致照片资源找不到

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

uni-app ios版本18.1.1使用uni.chooseImage选择图片时图库照片显示不全 未显示最近添加的照片 导致照片资源找不到

操作步骤

苹果15上传图片选择图库上传

预期结果

显示所有照片

实际结果

最近添加的照片没显示

bug描述

【报Bug】uniapp 苹果15 ios版本18.1.1使用uni.chooseImage选择图片时,图库照片显示不全。没有显示最近添加的照片,导致照片资源找不到,安卓和苹果12 ios17.8版本测试没问题,目前只发现苹果15 ios18.1.1有这个问题,进去之后不是显示所有图片,而是显示图片分类,第一二张是苹果12显示的。第三张是苹果15,第三张中没有最近添加的分类

img img img

开发环境与版本信息

项目创建方式 HBuilderX
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 15.1.1
HBuilderX类型 正式
HBuilderX版本号 4.32
手机系统 iOS
手机系统版本号 iOS 18
手机厂商 苹果
手机机型 iPhone 15 18.1.1
页面类型 Vue
Vue版本 Vue2
打包方式 离线

4 回复

更新离线SDK版本


我的也发现这个问题,原来是IOS系统版本兼容性的问题。。。

的确是需要更新到最新版sdk

针对您提到的 uni-app 在 iOS 版本 18.1.1 上使用 uni.chooseImage 选择图片时图库照片显示不全,特别是未显示最近添加的照片的问题,这通常是由于权限管理或系统 API 调用上的限制导致的。在 uni-app 中,我们可以通过检查并请求必要的权限,以及使用原生模块或插件来尝试解决这类问题。不过,由于直接修改系统级行为较为困难,我们通常会采用一些变通方法或依赖原生开发来解决。

以下是一个基础的代码示例,展示如何在 uni-app 中请求相册权限并使用 uni.chooseImage

// 请求相册权限(注意:此方法仅适用于Android,iOS需通过原生配置或插件处理)
#ifdef APP-PLUS
plus.android.requestPermissions([
    'android.permission.READ_EXTERNAL_STORAGE',
    'android.permission.WRITE_EXTERNAL_STORAGE'
], function(event) {
    // 权限请求成功
    chooseImages();
}, function(e) {
    // 权限请求失败
    console.error('权限请求失败:', e);
});
#endif

function chooseImages() {
    uni.chooseImage({
        count: 9, // 默认9
        sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
        sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
        success: function(res) {
            // tempFilePath可以作为img标签的src属性显示图片
            const tempFilePaths = res.tempFilePaths;
            console.log('选择的图片路径:', tempFilePaths);
        },
        fail: function(err) {
            console.error('选择图片失败:', err);
        }
    });
}

// 直接调用选择图片函数,对于iOS,如果权限已配置好,则直接执行
chooseImages();

注意

  1. 上述代码中关于权限请求的部分仅适用于Android平台,iOS平台通常需要在Xcode项目中配置Info.plist文件来请求相册访问权限。
  2. 对于iOS特定版本的问题,如18.1.1上图片显示不全,可能需要检查该版本的系统API变更或已知的bug。如果是系统bug,可能需要等待苹果官方修复或采用其他第三方库/插件。
  3. 考虑使用原生模块或HBuilderX提供的原生插件来深度定制相册选择行为,以更好地适配不同iOS版本。
  4. 确保在iOS项目的Info.plist中正确配置了NSPhotoLibraryUsageDescriptionNSCameraUsageDescription权限说明。

由于直接解决iOS特定版本问题可能需要原生代码介入,建议查阅更多关于iOS 18.1.1系统API的文档或社区讨论,以获取更具体的解决方案。

回到顶部