uni-app 升级4.29之后,APP离线打包模式uni.getLocation提示not support gcj02
uni-app 升级4.29之后,APP离线打包模式uni.getLocation提示not support gcj02
示例代码:
uni.getLocation({
type: 'gcj02',
success: res => {
return resolve({
latitude: res.latitude,
longitude: res.longitude,
});
},
fail: e => resolve(e),
})
操作步骤:
- 调用uni.getLocation({type: ‘gcj02’})
预期结果:
- 正常返回经纬度信息
实际结果:
- 报错:not support gcj02
bug描述:
- 使用uni.getLocation时会正常拉起系统授权读取位置的弹窗,确认授权后则会直接fail, 提示not support gcj02
更多关于uni-app 升级4.29之后,APP离线打包模式uni.getLocation提示not support gcj02的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你这情况,是没有配置地图厂商的 sdk 吧,App 和 H5 需配置定位 SDK 信息才可支持 gcj02。
更多关于uni-app 升级4.29之后,APP离线打包模式uni.getLocation提示not support gcj02的实战教程也可以访问 https://www.itying.com/category-93-b0.html
遇到同样的问题。高德地图安卓key已配置。云打包可以获取定位。但是离线打包不行。是哪里的问题?
回复 var_export: 包名相同吗?是你高德后台配置的包名么?
回复 DCloud_UNI_yuhe: 确定相同。云打包正常,离线打包不正常
回复 DCloud_UNI_yuhe: 离线打包中有高德地图和高德定位,加入geolocation-amap-release.aar ,点击允许定位,会闪退。
问题解决了吗?我也遇到这个错误,加入geolocation-amap-release.aar 闪退。
在uni-app升级到4.29版本后,针对APP离线打包模式下uni.getLocation
接口提示“not support gcj02”的问题,这通常是由于API调用时的坐标系统参数设置不当或者版本更新后的API行为变更所致。从uni-app 4.x版本开始,对于地理位置接口的调用有了一些调整和更新,尤其是在坐标系统的处理上。
在uni-app中,uni.getLocation
接口用于获取用户的地理位置信息,该接口支持传入一个对象作为参数,其中type
属性可以指定返回的坐标类型。type
的值可以是'wgs84'
(GPS坐标)、'gcj02'
(国测局坐标,也叫火星坐标,适用于中国大陆)或者'baidu'
(百度坐标)。
然而,根据uni-app的官方文档和更新日志,从某些版本开始,尤其是在离线打包模式下,对于gcj02
坐标系统的支持可能会有所限制或变更。为了确保兼容性,你可以尝试以下几种方法:
-
使用
wgs84
坐标系统:这是国际标准的GPS坐标系统,通常兼容性最好。uni.getLocation({ type: 'wgs84', success: function (res) { console.log('位置信息:', res); }, fail: function (err) { console.error('获取位置失败:', err); } });
-
服务器端转换坐标:如果你的应用必须使用
gcj02
坐标,可以在获取到wgs84
坐标后,通过服务器端进行坐标转换。这需要你有一个能够执行坐标转换的后端服务。 -
检查并更新SDK和依赖:确保你的uni-app SDK和所有相关依赖都是最新的,因为新版本可能会修复此类问题。
-
查阅官方文档和社区:访问DCloud的官方论坛和GitHub仓库,查看是否有其他开发者遇到类似问题以及官方给出的解决方案。
-
降级uni-app版本:如果以上方法都不能解决问题,且你的项目紧迫,考虑暂时回退到之前的uni-app版本,直到官方解决该问题。
请注意,直接处理坐标转换可能会涉及到复杂的数学计算和地理信息系统的知识,通常建议依赖成熟的第三方库或服务来完成。在处理地理位置信息时,也要确保遵守相关的隐私政策和法律法规。