小果叮
小果叮
  • 发布:2026-08-20 10:25
  • 更新:2026-08-20 10:26
  • 阅读:27

【报Bug】uni.scanCode在iOS上会出现扫码框是黑屏,"modules": { "Barcode": {}, "Camera": {} } 权限都有

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 5.24

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: 全部

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

uni.scanCode({
scanType: ['qrCode', 'barCode'],
onlyFromCamera: true,
success: function(res) {

}  

});

操作步骤:

苹果手机打开扫码,能正常调用,但是打开是黑色的

预期结果:

能够正常打开扫码功能

实际结果:

打开后是黑屏

bug描述:

苹果手机打开扫码,能正常调用,但是打开是黑色的

2026-08-20 10:25 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

针对您提交的 Bug 反馈,以下是基于 DCloud 官方视角的评审与分析:

一、 Bug 反馈内容完整性分析

  1. BUG 描述:描述较为简略。虽然说明了“苹果手机打开扫码黑屏”,但缺少一些关键排查信息,例如:打包方式(云打包/离线打包)、是否为自定义基座、manifest.json 中是否勾选了相关模块等。建议补充这些信息以便官方人员快速定位。
  2. 代码示例:提供的代码是一个可以直接运行的简化示例,结构完整,无需官方人员额外调整即可用于测试复现。
  3. 复现步骤:描述为“苹果手机打开扫码,能正常调用,但是打开是黑色的”。结合代码示例,官方人员可以执行复现操作,步骤描述清晰。
  4. 预期结果与实际结果:预期结果“能够正常打开扫码功能”合理且符合 API 预期;实际结果“打开后是黑屏”属于异常现象,并非误报。
  5. 分类信息:分类信息完整,包含了 HBuilderX 版本、手机系统版本、设备机型、Vue 版本等必要环境信息。
  6. 附件说明:我无法识别附件内容。如果问题涉及特定的界面表现或报错日志,请以文字形式详细描述。

二、 Bug 是否成立及替代方案

结合知识库信息,该 Bug 反馈的现象在 uni-app iOS 端有明确的历史记录与排查方向。

  1. 模块配置缺失:在 iOS 端使用 uni.scanCode 出现黑屏,最常见的原因是 manifest.jsonapp-plus 模块配置中未勾选 BarcodeCamera 模块。请检查您的 manifest.json 文件,确保包含以下配置:

    {  
    "app-plus": {  
    "modules": {  
      "Barcode": {},  
      "Camera": {}  
    }  
    }  
    }

    本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
    修改后需重新打包自定义基座进行测试。详见社区文章:【解决】uni.scanCode苹果黑屏问题

  2. 权限调用冲突:如果在 Vue 页面调用,且已确认系统设置中相机权限已开启,但仍然黑屏,可能是权限状态判断与扫码 API 调用之间存在冲突。可尝试在调用 uni.scanCode 前,主动判断并请求一次相机权限,或者尝试在黑屏后结束进程后台再重新进入。详见相关讨论:uni.scanCode iOS 黑屏

  3. 替代方案推荐

    • 如果当前框架的扫码能力无法满足需求,官方推荐使用 UTS 插件实现扫码功能,以获得更好的识别效率和 UI 自定义性。可以前往插件市场搜索相关扫码插件:插件市场扫码插件
    • 考虑升级使用 uni-app x 进行开发,其扫码能力在效果和自定义性上均优于 uni-app。
内容为 AI 生成,仅供参考

要回复问题请先登录注册