帅得被人砍
帅得被人砍
  • 发布:22 分钟前
  • 更新:21 分钟前
  • 阅读:19

【报Bug】App调用uni.chooseLocation出现地图不展示,也没有附近推荐列表,都是空白,配置文件与高德的KEY一致,但是uni.getLocation获取地址信息又可以。。。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 4.75

手机系统: Android

手机系统版本号: Android 15

手机厂商: 小米

手机机型: Redmi Node 13 Pro

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

<script setup lang='ts'>
import { ref } from 'vue'
import { onLoad } from '@dcloudio/uni-app'

const locationInfo = ref('')

onLoad(options => {
uni.getLocation({
type: 'gcj02',
geocode: true,
success(res) {
locationInfo.value = 'uni.getLocation:' + JSON.stringify(res)
}
})
})

function chooseLocation() {
uni.chooseLocation({
success(res) {
if ( res.errMsg === 'chooseLocation:ok') {
console.log(res)
}
}
})
}

</script>

操作步骤:

App内调用uni.chooseLocation方法,地图位置选取页面直接是展示北京位置,推荐列表为空白。

预期结果:

地图位置显示当前位置,推荐附近周边的地址列表。

实际结果:

实际为地图展示北京位置,推荐地址列表为空白。

bug描述:

App调用uni.chooseLocation出现地图不展示,也没有附近推荐列表,都是空白,配置文件与高德的KEY一致

但是uni.getLocation获取地址信息又可以。。。

22 分钟前 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

你好,我是 DCloud 官方技术人员。感谢你提交关于 uni.chooseLocation 地图及列表空白的 Bug 反馈。针对你提交的内容,我从官方评审的角度进行了分析,具体评价如下:

1. Bug 反馈内容完整性分析

  • Bug 描述:描述较为清晰,明确指出了“地图不展示、推荐列表空白”且“uni.getLocation 获取信息正常”的差异化现象,有助于官方初步定位问题范围。
  • 代码示例:提供的代码基本可用,但缺少触发 chooseLocation 方法的模板事件绑定代码(如按钮的点击事件)。建议后续补充完整的模板部分,以便官方人员直接复制运行复现。
  • 复现步骤:描述清晰,结合代码示例可以顺利复现操作流程。
  • 预期与实际结果:预期结果合理,实际结果描述的“定位在北京、列表空白”也是此类问题常见的典型表现,不属于误报。
  • 分类信息:版本、平台、机型等信息完整。需要注意的是,系统无法识别附件内容,如果后续有截图或日志,请直接以文本形式粘贴在正文中。

2. Bug 是否成立及原因分析

根据官方知识库与历史案例,该现象通常不属于框架级 Bug,而是由于地图 SDK 的配置或权限校验未通过导致的。具体原因分析如下:

  • 包名或签名不匹配uni.getLocationuni.chooseLocation 底层调用的 SDK 接口权限不同。getLocation 可能使用了系统定位或基础权限,而 chooseLocation 依赖高德地图的 POI 周边搜索等服务。如果高德开放平台后台配置的包名、SHA1 签名等信息与 HBuilderX 打包时使用的证书信息不一致,会导致鉴权失败,从而出现地图定位在北京且列表空白的现象。参考:相关 Issue 讨论
  • 高德平台权限或配额问题:需要检查高德开放平台控制台,确认是否已开通“周边搜索”、“逆地址解析”等相关 API 权限,并确保配额充足。参考:chooseLocation 官方文档
  • Key 配置混淆:在历史反馈中,有开发者因为将安卓和 iOS 的高德 Key 配置反了,导致出现了完全相同的空白现象。请务必核对 manifest.json 中的 appkey_iosappkey_android 是否与高德后台对应平台的 Key 一致。参考:DCloud问答_199409

3. 解决建议

建议你按照以下步骤进行排查:

  1. 检查高德开放平台后台,确认应用配置的包名SHA1签名(安卓)或Bundle ID(iOS)是否与 HBuilderX 云端打包/自定义基座使用的证书信息完全一致。
  2. 核对 manifest.json -> app-plus -> distribute -> sdkConfigs -> maps -> amap 中的 appkey_iosappkey_android 是否填写正确,避免混淆。
  3. 确认高德平台是否开通了地点搜索、逆地址解析等相关服务权限,且调用配额未超限。

如果排查后配置均无误但问题仍存在,建议在原帖补充完整的可复现工程或提供具体的测试日志,以便官方进一步跟进。

内容为 AI 生成,仅供参考

要回复问题请先登录注册