uni.getLocation({
type: 'gcj02',
geocode: true,
success: function(res) {
uni.showLoading({
title: '正在定位...'
})
console.log('res', res);
let text = res ? JSON.stringify(res) : '无数据'
uni.showModal({
title: '提示',
content: text,
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
if (!res.address) {
uni.showToast({
title: '获取地址失败,将导致部分功能不可用',
icon: 'none'
});
}
if (res.latitude < 4 || res.latitude > 53 || res.longitude < 73 || res.longitude > 135) {
uni.showToast({
title: '当前定位有误,请退出重试',
icon: 'none',
duration: 2000
})
}
//....定位完成后的处理
setTimeout(() => {
uni.hideLoading();
}, 1000)
},
fail: function(err) {
uni.showToast({
title: '获取地址失败,' + err,
icon: 'none'
});
}
}); - 发布:2026-11-05 15:08
- 更新:2026-11-05 15:08
- 阅读:53
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 22h2
HBuilderX类型: 正式
HBuilderX版本号: 5.34
手机系统: Android
手机系统版本号: Android 16
手机厂商: realme
手机机型: realme GT5 pro
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
直接调用获取定位信息,老版本(一个月前)与新版本,这部分逻辑未改动,应用证书、高德key及app权限相关的配置也未改动,但老版本可以正常定位,新版本不行,定位都只能获取经纬度,无法获取具体地址信息。另外现在使用5.24的hubliderX运行到自己手机定位也正常,但是5.34的hubliderX运行到自己手机,也不正常。目前两个版本的hubliderX云打包出来皆不正常。
直接调用获取定位信息,老版本(一个月前)与新版本,这部分逻辑未改动,应用证书、高德key及app权限相关的配置也未改动,但老版本可以正常定位,新版本不行,定位都只能获取经纬度,无法获取具体地址信息。另外现在使用5.24的hubliderX运行到自己手机定位也正常,但是5.34的hubliderX运行到自己手机,也不正常。目前两个版本的hubliderX云打包出来皆不正常。
预期结果:
定位正常获取经纬度和地址信息
定位正常获取经纬度和地址信息
实际结果:
可以获取经纬度,但无法获取地址信息,地址信息返回全是空字符串
可以获取经纬度,但无法获取地址信息,地址信息返回全是空字符串
bug描述:
昨天进行发版,使用的hubliderX的5.24版本,云打包出来发现定位功能异常,可以正常获得经纬度,但是地址信息无法获取。随后我们进行高德key有效性排查,更新hubliderX以及将代码运行到本机测试,发现如下情况:
5.24版本hubliderX——运行到本机,定位一切正常;而云打包出来的包,定位可以获取经纬度,但无法获取具体地址信息。
5.34版本hubliderX——运行到本机、云打包,定位都只能获取经纬度,无法获取具体地址信息。
而本项目一个月前用5.24版本云打包发版的包,到目前为止定位一切正常。这一个月也未对定位相关的代码进行过改动,应用证书、定位相关的key和权限也未进行改动,是否与5.33版本,更新了高德sdk有关?(* Android平台 更新 地图/定位模块 高德地图 SDK 为 11.2.100 版,高德定位 SDK 为 11.2.100 版)
0 个回复