无
- 发布:2026-07-07 17:34
- 更新:2026-07-07 17:35
- 阅读:31
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 无
HBuilderX类型: 正式
HBuilderX版本号: 5.14
手机系统: Android
手机系统版本号: Android 16
手机厂商: 小米
手机机型: Redmi Note 12R
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
无
无
实际结果:
无
无
bug描述:
打开项目的manifest.json文件,在“安卓/IOS模块配置”项的“Speech(语音输入)”下,勾选“百度语音识别”:这里需要填写百度语音的AppId,API Key,Secret Key。
在百度智能云后台创建应用的时候,要选择 iOS,Android,HarmonyOS,Linux,不需要
如果我选择了IOS时,在manifest.json填写后,但发现后面安卓的不能用了,现在百度云安卓和IOS是分开的,但在manifest.json“安卓/IOS模块配置”项的“Speech(语音输入)”只能填写一个AppId,API Key和Secret Key,遇到这个情况怎么处理让安卓和苹果都能做到语音输入功能(调用百度语音SDK)
Ask小助手 - Ask社区AI助手
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
好的,收到你的 bug 反馈。作为 DCloud 官方人员,我对这个反馈进行如下评审和分析:
1. 反馈质量评审
这个 bug 反馈描述清晰,准确指出了当前 uni-app 在 App 端配置百度语音识别时面临的多端兼容性痛点,但在完整度上还有所欠缺。
- BUG 标题与描述:标题明确指出了“百度语音无法兼容 Android 和 iOS 两个版本”的核心问题。描述部分也清楚地交代了背景:百度智能云后台目前将 iOS 和 Android 的应用包名/鉴权信息分开管理,但在 HBuilderX 的
manifest.json可视化配置面板中,App 模块配置下“Speech(语音输入)”的百度语音识别仅提供了一个通用的appid、apikey、secretkey输入框。这个痛点描述非常清楚,官方人员能够迅速理解。 - 代码示例:缺失。虽然这是一个配置层面的限制问题,但建议补充一段最基础的调用代码(如
plus.speech.startRecognize)以及你manifest.json中关于speech节点的脱敏配置源码,这有助于我们验证调用逻辑是否规范。 - 复现步骤:填写为“无”。建议补充具体的操作路径,例如:“1. 前往百度智能云分别创建 Android 和 iOS 应用并获取各自的 Key;2. 在 HBuilderX 中打开 manifest.json -> App模块配置 -> Speech(语音输入) 勾选百度语音识别;3. 发现只能填写一组 Key,填入 iOS 的 Key 后 Android 端鉴权失败(或反之)”。这样能帮助排查人员更直观地复现你的操作路径。
- 预期结果与实际结果:均填写为“无”。预期结果应描述为“希望在 manifest.json 中能分别配置 Android 和 iOS 的百度语音 Key,使两端均能正常鉴权识别”;实际结果应描述为“只能填写一组 Key,导致另一端平台鉴权失败无法使用”。
- 分类信息:比较完整。提供了操作系统、HBuilderX 版本(5.14 正式版)、手机 OS 平台、Vue 版本(Vue2)和机型等信息。
评审结论:反馈的痛点真实存在,但关键信息(复现步骤、预期/实际结果)缺失较多。建议补充上述内容,以便我们将此产品限制或缺陷准确地录入需求/缺陷跟踪系统。
2. 问题分析与排查
根据知识库和官方文档,你反馈的问题成立,这确实是当前 uni-app 框架在 App 端集成百度语音 SDK 时的一个已知限制。
- 框架配置限制:在 App端Speech(语音输入)模块配置 中,官方文档明确指出,在
manifest.json中勾选百度语音识别后,仅需填写appid、apikey、secretkey。而在 manifest-app 完整配置文档 中也可以看到,speech -> baidu节点下确实只支持这三个字段,并没有区分appkey_ios和appkey_android(不像友盟统计等模块做了区分)。 - 百度平台鉴权机制:百度语音 SDK 在 Android 和 iOS 平台上的包名绑定和鉴权机制是独立的。在 ask 社区的类似问题 百度语音识别 安卓成功 ios报错 中,开发者也遇到了类似的多端鉴权问题。如果 uni-app 打包时只传入了一组 Key,必然会导致另一端平台鉴权失败(如报错
asr authentication failed)。
3. 解决方案与建议
由于目前 manifest.json 的原生模块配置暂不支持分别填写 Android 和 iOS 的百度语音 Key,针对你需要让安卓和苹果都能调用百度语音 SDK 的需求,提供以下替代方案:
方案一:使用 UTS 插件或原生插件自行接入(推荐)
由于官方内置的 Speech 模块在多端 Key 配置上存在限制,你可以通过开发或购买原生插件来绕过此限制。
- UTS 插件:如果你使用的是较新的 HBuilderX 版本,推荐使用 UTS 插件。你可以编写 UTS 插件,在 Android 和 iOS 两端分别引入百度语音的原生 SDK,并在插件代码内部针对不同平台使用对应的 Key。这样 Key 就不会写死在
manifest.json的公共配置中,而是由插件内部各自管理。 - 插件市场现有插件:你可以前往 DCloud 插件市场搜索是否已有支持分别配置多端 Key 的百度语音识别插件。例如插件市场存在 跨平台Android和IOS百度语音在线识别原生插件 等相关生态组件可供参考。
方案二:离线打包自定义配置
如果你具备原生开发能力,可以采用 App 离线打包方案。
- 在 Android 原生工程的
AndroidManifest.xml中配置 Android 端的百度语音 Key(参考 AndroidManifest.xml配置)。 - 在 iOS 原生工程的
info.plist中配置 iOS 端的百度语音 Key(参考 iOS端帐号配置)。
这样在原生工程层面分别配置,即可解决两端鉴权冲突的问题。
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
感谢你的反馈,我们会将此多端 Key 配置限制记录为产品优化需求,在后续版本中评估是否在 manifest.json 中增加各平台独立的 Key 配置项。