uni.chooseLocation({
useSecureNetwork: true,
success(res) {
if (res.errMsg === 'chooseLocation:ok') {
formData.value.detailAddress = res.name
} else {
uni.showToast({ title: res.errMsg, icon: 'none' })
}
}
})
- 发布:2026-10-27 18:15
- 更新:2026-10-27 18:30
- 阅读:59
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 12.7.6 (21H1320)
HBuilderX类型: 正式
HBuilderX版本号: 5.33
手机系统: Android
手机系统版本号: Android 16
手机厂商: 三星
手机机型: S23 UItra
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
点击选取地址,直接空白,且搜索地点一直在加载中
点击选取地址,直接空白,且搜索地点一直在加载中
预期结果:
希望可以跟其它Android设备苹果设备一样,可以正常选取地址
希望可以跟其它Android设备苹果设备一样,可以正常选取地址
实际结果:
点击选取地址,直接空白,且搜索地点一直在加载中
点击选取地址,直接空白,且搜索地点一直在加载中
bug描述:
三星手机:
在三星手机设备上通过调用uni.chooseLocation选取地址的API,打开页面数据一直加载,且地图无法加载!
当app切换至后台,重新返回app内,此时选取地址的页面加载就好了!
在其它安卓手机及苹果手机设备上调用uni.chooseLocation选取地址的API是正常的!
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
您好,感谢您的反馈。以下以官方视角对本条 bug 反馈进行评审:
一、反馈内容完整性评审
已包含的要素:BUG 标题、问题描述、代码示例、复现步骤、预期结果、实际结果、分类信息(PC 环境、HBuilderX 版本、手机系统/厂商/机型、Vue 版本)均齐全。其中“三星 S23 Ultra + Android 16”的设备信息,以及“切后台再返回后恢复正常”这一细节描述得比较清楚,对排查有参考价值。
需要补充或完善的内容:
- 复现步骤过于简单,仅凭“点击选取地址,直接空白”官方难以直接复现。请补充以下关键环境信息(以文字形式描述即可,我无法识别附件):
- 运行/打包方式:标准基座真机运行是否复现?自定义基座?云端正式包还是离线打包?
- manifest.json 中 App 模块的地图/定位配置:使用的是高德还是腾讯地图?key 申请时的包名、sha1/证书信息与打包配置是否一致?
- 您的代码中使用了
useSecureNetwork: true,请确认是否已完成配套配置:项目关联 uniCloud 服务空间、导入并部署 uni-map-co/uni-map-common 并配置好地图 key、manifest 中勾选安全网络模块等(见下文)。 - 地图空白区域是白色还是蓝色、页面类型(vue/nvue)、复现时的完整控制台日志。
- 代码示例本身可以直接运行,但
uni.chooseLocation的行为与 manifest 地图 SDK 配置、uniCloud 安全网络配置强相关,仅凭这段调用代码无法复现完整环境;建议补充 fail/complete 回调打印错误信息,便于捕获失败原因。 - 预期结果合理(与其他 Android 设备、iOS 表现一致)。
- 实际结果与标题描述一致,属于真实的兼容性问题反馈,不属于误报。
- 分类信息基本完整,但缺少打包方式和地图服务商配置这两项关键内容。
二、bug 是否成立的分析
-
支持性前提:
uni.chooseLocation在 Android App 端是官方支持的能力;且 HBuilderX 4.84 版本已适配 Android 16 系统(详见 Android 更新日志),您使用的 5.33 正式版已包含该适配,因此不属于“版本未适配 Android 16”的问题,bug 有成立的可能性,但按现有信息还无法定位根因。 -
从知识库看,当前现象有几个高概率排查方向:
- useSecureNetwork: true 的配置链路:官方文档明确,默认情况下
uni.chooseLocation不会使用安全网络请求 uni-map-co;若要使用useSecureNetwork: true,必须完成一整套配置(关联 uniCloud 服务空间 → 导入 uni-map-common 并配置地图 key → 应用关联服务空间 → manifest 安卓/iOS 模块配置勾选安全网络模块 → uni-map-co 入口文件添加拦截代码 → 上传 uni-map-co、uni-config-center、uni-map-common),任一环节缺失都可能导致地点搜索异常,详见 chooseLocation 文档。另外,此前有开发者反馈使用useSecureNetwork: true时报 "Encryption block is invalid" 的问题,官方已在 HBuilderX 5.0.2 修复,您的 5.33 已包含该修复,但建议贴出完整日志确认是否仍有安全网络相关报错。 - 地图 key 配置不一致:知识库中明确记载,此类“chooseLocation 列表不出来”的问题一般为高德地图后台配置的包名、sha 等信息与 HBuilderX 打包配置的内容不一致,请检查相关配置是否一致。文档也说明 App 端打包后定位需开发者自行申请 key,注意包名、appkey、证书信息必须匹配,真机运行基座使用的是 DCloud 申请的 sdk 配置(详见 getLocation 文档)。ask 社区类似“chooseLocation 无法搜索地址”的问题,官方回复也是“可能是配置 key 的问题”(DCloud问答_214091)。
- 三星设备的历史类似案例:ask 社区曾有三星 S20 Ultra 上 chooseLocation 调起地图空白、附近地址正常的反馈(DCloud问答_132448),以及安卓端地点列表一直加载、重启应用后恢复的案例(DCloud问答_183016)。说明“列表一直加载/地图空白”在部分设备上出现过,但均未形成官方定论,仅作现象参考。
- ISSUE 系统中也有类似反馈:腾讯云 + 使用腾讯地图 uni.chooseLocation 出现问题(地图空白、无法搜索),目前状态为“待确认”,仅能作为线索参考,不能作为结论依据(ISSUE 系统:https://issues.dcloud.net.cn/pages/issues/detail?id=15075 )。
- useSecureNetwork: true 的配置链路:官方文档明确,默认情况下
-
关于“切后台再返回后恢复正常”这一现象,知识库中暂未找到官方说明,无法据此判断根因,建议补充信息时一并附上复现日志。
-
参考信息:文档提到由于设备厂商适配原因,部分 Android 设备上定位服务可能不稳定,如需提升定位稳定性建议使用高德定位或腾讯定位模块(详见 App 定位文档);该说明针对的是系统定位方式的厂商支持情况,与您当前问题的关联需结合您的 manifest 配置进一步确认。
三、排查建议(按优先级)
- 先在标准基座真机运行对比验证:若标准基座正常、自定义基座/正式包异常,重点核对高德/腾讯 key 的包名、sha1、证书与打包配置的一致性。
- 对比测试:将
useSecureNetwork: true去掉(或改为 false)后观察搜索是否恢复;若恢复正常,则按 chooseLocation 文档 逐步补齐 uniCloud 安全网络配置链路。 - 在调用中补充 fail/complete 回调并打印完整错误信息,同时抓取复现时的完整日志。
- 补充上述缺失的配置信息后在本帖更新反馈,便于官方复现与定位。
总体评审结论:反馈结构完整、现象真实、预期合理,具备受理价值;但复现步骤和关键配置信息不足,暂时无法定位根因,请按上述内容补充后继续跟进。