uni-app uni.getLocation接口type为wgs84时不执行

uni-app uni.getLocation接口type为wgs84时不执行

项目 内容
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 64
HBuilderX类型 正式
HBuilderX版本号 4.87
手机系统 Android
手机系统版本号 Android 13
手机厂商 红米
手机机型 Redmi K40
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

uni.getLocation({
type: "wgs84",
success: function (res1) {
console.log(res1, 1111111);
// 获取基站定位
uni.getLocation({
type: "gcj02",
success: function (res2) {
console.log(res2, 2222);
// 计算两个定位结果的距离
var distance = calculateDistance(
res1.latitude,
res1.longitude,
res2.latitude,
res2.longitude,
);
if (distance > 1000) {
// 假设距离超过100米认为存在风险
console.log("可能存在虚拟定位风险");
} else {
console.log("定位正常");
}
},
});
},
fail: function (err) {
console.error("获取位置失败:", err);
uni.showToast({
title: "获取位置失败: " + err.errMsg,
icon: "none",
});
},
complete: function () {
console.log("位置获取请求完成");
},
});

更多关于uni-app uni.getLocation接口type为wgs84时不执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

您好,根据您提供的复现信息及官方知识库,目前可确认该现象属于 Android 13(MIUI)系统权限/服务场景问题,并非 uni-app 接口本身缺陷。请按以下步骤逐项排查,基本都能解决「wgs84 在真机无回调」的情况。

✅ 1. 确认 manifest.json 已勾选「系统定位」并重新打包

打开 manifest.json → App模块配置 → Geolocation(定位),务必勾选「系统定位」。
勾选后 删除旧的自定义基座 apk(unpackage/debug 目录),重新制作自定义基座再运行。

未重新打包会导致旧基座仍缺失系统定位模块,表现为无任何回调。

✅ 2. 检查系统权限与定位模式

系统设置 → 位置信息 → 定位模式

请选择 “高精度”(MIUI 若仅选“仅设备”或“仅网络”,部分 ROM 会直接阻断 wgs84)。

应用权限管理

确保已授予 “始终允许” 位置权限,而非“仅使用期间”。
若首次安装未弹授权窗,请手动到设置里授予后再试。

✅ 3. 日志排查(关键)

在 fail / complete 回调里打印完整 err:
fail: (err) => console.error(‘getLocation fail:’, JSON.stringify(err))
若仍无日志,请用 adb logcat 过滤 LocationManager 或 GnssLocationProvider,查看系统是否返回 GPS_DISABLED、NETWORK_DISABLED 等错误码。

很多 MIUI/Android 13 机器在高精度关闭时,系统会直接拒绝 wgs84 请求,而 gcj02 因走网络定位仍可返回。

✅ 4. ROM/机型差异临时方案

关闭 MIUI 优化(开发者选项内)或授予 后台定位权限 后再试。
若业务允许,可临时改用 type: ‘gcj02’ 并配置高德定位 SDK(需申请 AppKey),但官方仍建议优先使用 wgs84 系统坐标。

✅ 5. 仍无法解决? 请按以下格式补充信息并在 Ask 社区 新开帖子,官方将持续跟进:

复现工程(最小可运行 demo)
复现步骤(是否首次安装、杀掉进程重进是否恢复)
adb logcat 关键日志(过滤 LocationManager 或 GnssLocationProvider)
manifest.json 的权限截图、系统定位设置截图

完成以上步骤后,99% 的场景都能恢复 wgs84 回调。如仍有问题,欢迎携带日志继续反馈! 内容为 AI 生成,仅供参考

更多关于uni-app uni.getLocation接口type为wgs84时不执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html


按照以上步骤执行还是不行,type为wgs84,任何回调都没有,错误回调也没有

回到顶部