return new Promise<UniApp.ChooseImageSuccessCallbackResult>((resolve, reject) => {
uni.chooseImage({
count: remainingCount,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
success: resolve,
fail: reject,
});
});
- 发布:2026-10-14 12:48
- 更新:2026-10-14 12:49
- 阅读:53
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 26.7
手机系统: iOS
手机系统版本号: iOS 26
手机厂商: 苹果
手机机型: iPhone18 ProMax
页面类型: vue
vue版本: vue2
打包方式: 离线
项目创建方式: CLI
CLI版本号: 3.0.0-5010520260709002
示例代码:
操作步骤:
复现步骤就是chooseImage后重复的点击"从相册选择"
复现步骤就是chooseImage后重复的点击"从相册选择"
预期结果:
期望可以正常打开相册
期望可以正常打开相册
实际结果:
只要有一次提示chooseimage:fail The album has been opened后,在app内所有调用chooseImage的地方就都打不开了
只要有一次提示chooseimage:fail The album has been opened后,在app内所有调用chooseImage的地方就都打不开了
bug描述:
在iOS调用多次uni.chooseImage, album', 'camera',其实是点击多次打开相册,在页面会弹出多次的alert,点击其中一次后,报chooseimage:fail The album has been opened,但是实际并没有打开相册,后续再点击就永久打不开相册了,一直提示chooseimage:fail The album has been opened。复现是在18 ProMax,iOS 27.0.1的离线uniapp-app上面;
1、跟我离不离线打包没问题,直接多次点击按钮调用uni.chooseImage就能复现,参考附件和示例代码;
2、bug反馈选不到iOS27,你们要修复一下,现在只能选到26,选不到iOS 27不是你们的问题吗,抛给提问者干嘛?
3、复现步骤不清楚的话,看附件的录屏,调用代码就只是下面的代码示例,无法识别附件就人工识别。复现步骤就是chooseImage后重复的点击"从相册选择",你们没有提供释放__galleryStatus的api。
Ask小助手 - Ask社区AI助手
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
感谢提交该 bug 反馈,以下是从官方视角对本条反馈的评审意见。
一、反馈内容完整性评审
目前反馈中已包含:BUG 标题、问题描述、简略复现步骤、预期结果、实际结果及部分分类信息,但存在以下不足,会影响官方人员的复现与定位效率:
- 缺少代码示例:反馈中仅写了"调用uni.chooseImage, album', 'camera'",这不是一段完整可运行的代码(如
sourceType: ['album','camera']的完整调用参数、success/fail 回调写法均未提供)。请补充一段可直接运行的最小化示例代码,最好是基于官方 Hello uni-app 示例改造后可复现的完整页面代码。 - HBuilderX 版本号不具体:分类信息中只写了"正式版",未提供具体版本号(如 4.x.x)。由于您使用的是离线打包方式,还需要一并说明离线打包所使用的 iOS SDK 版本,以及该 SDK 与 HBuilderX 版本是否匹配。
- 系统版本信息前后矛盾:问题描述中写的是"iOS 27.0.1",而分类信息中写的是"iOS 26",请确认并统一实际的手机系统版本号,避免排查方向出现偏差。
- 复现步骤不够清晰:
- "点击多次打开相册"的具体操作时序不明确:是在相册选择界面尚未弹出时快速连续点击多次触发多次
uni.chooseImage调用?还是相册关闭后再点击? - "页面会弹出多次的alert"中的 alert 具体指什么?是 iOS 系统的相册/相机权限授权弹窗,还是应用自身的提示框,还是 sourceType 包含 album、camera 时弹出的"拍照/从相册选择"方式选择框?"点击其中一次"点击的又是哪一个?请逐步描述清楚。
- "点击多次打开相册"的具体操作时序不明确:是在相册选择界面尚未弹出时快速连续点击多次触发多次
- 另外提示:我无法识别附件,如有补充信息请直接以文字或代码形式写在回复中。
二、bug 成立性分析
从知识库检索情况看:
- "The album has been opened" 这一报错在社区中确有历史反馈记录,例如 获取图片接口chooseImage报错:uniapp fail The album has been opened,该帖中多位用户反馈遇到相同报错,但帖内暂无官方解决方案结论;另有 【报Bug】第一次打开相册可以弹出照片,但瞬间就退出,再次点击就无法打开相册了,其评论中提到 plus.gallery.pick 错误回调同样报出 "The album has been opened",该帖标签为"无法重现"。也就是说,该现象此前有过类似报告,但知识库中暂未检索到官方已确认的根因结论或修复记录。
- 从您描述的现象看——相册实际并未打开,但框架内部状态被判定为"相册已打开",且后续永久无法恢复——如果属实,属于状态不一致类问题,具有排查价值。但当前反馈缺少代码示例与明确复现时序,官方暂无法据此直接复现和确认。
- 需要注意的是,您使用的是离线打包,需先排除离线 SDK 版本过旧或依赖库未全量替换等工程因素(历史上有相册/媒体相关问题的官方排查先例即要求确认 SDK 版本与全量替换依赖)。
三、建议的补充与验证方式
- 补充上述缺失项:完整可运行代码示例、HBuilderX 具体版本号、离线打包 iOS SDK 版本、确认后的 iOS 系统版本与机型、逐步量化的复现操作时序(包括 alert 的具体内容与点击对象)。
- 建议先直接运行官方 Hello uni-app 示例中的 chooseImage 用例,在相同设备与系统上验证是否同样出现"多次调用后报 The album has been opened 且永久无法打开"的现象,以排除业务代码中重复触发调用等因素。
- 可参考 uni.chooseImage 官方文档 确认 sourceType 等参数用法,并通过用户授权 API 检查相册/相机权限状态,排除权限层面因素;iOS 端权限判断与引导开启的参考写法可见 ios 用户拒绝相册访问,引导用户到设置页面开启相册访问权限。
- 补充完整信息后,建议同步在 ask.dcloud.net.cn 提交或跟进该问题,便于官方人员按上述信息进行复现与确认。
综上:该反馈的现象描述具有一定排查价值,但当前信息尚不完整,暂无法确认 bug 成立,请按上述清单补充代码示例、具体版本号与详细复现步骤后再行确认。