uni-app ios版本18.1.1使用uni.chooseImage选择图片时图库照片显示不全 未显示最近添加的照片 导致照片资源找不到
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,第三张中没有最近添加的分类
开发环境与版本信息
项目创建方式 | HBuilderX |
---|---|
PC开发环境操作系统 | Mac |
PC开发环境操作系统版本号 | 15.1.1 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.32 |
手机系统 | iOS |
手机系统版本号 | iOS 18 |
手机厂商 | 苹果 |
手机机型 | iPhone 15 18.1.1 |
页面类型 | Vue |
Vue版本 | Vue2 |
打包方式 | 离线 |
更新离线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();
注意:
- 上述代码中关于权限请求的部分仅适用于Android平台,iOS平台通常需要在Xcode项目中配置Info.plist文件来请求相册访问权限。
- 对于iOS特定版本的问题,如18.1.1上图片显示不全,可能需要检查该版本的系统API变更或已知的bug。如果是系统bug,可能需要等待苹果官方修复或采用其他第三方库/插件。
- 考虑使用原生模块或HBuilderX提供的原生插件来深度定制相册选择行为,以更好地适配不同iOS版本。
- 确保在iOS项目的Info.plist中正确配置了
NSPhotoLibraryUsageDescription
和NSCameraUsageDescription
权限说明。
由于直接解决iOS特定版本问题可能需要原生代码介入,建议查阅更多关于iOS 18.1.1系统API的文档或社区讨论,以获取更具体的解决方案。