doGetLocation() {
console.log('获取定位')
uni.getLocation({
success: (res) => {
this.hasLocation = true;
this.location = formatLocation(res.longitude, res.latitude);
},
fail: (err) => {
console.log(err)
console.log('结束定位')
// #ifdef MP-BAIDU
if (err.errCode === 202 || err.errCode === 10003) { // 202模拟器 10003真机 user deny
this.showConfirm();
}
// #endif
// #ifndef MP-BAIDU
if (err.errMsg.indexOf("auth deny") >= 0) {
uni.showToast({
title: "访问位置被拒绝"
})
} else {
uni.showToast({
title: err.errMsg
})
}
// #endif
},
complete() {
console.log('结束定位')
}
})
console.log('123123123')
}
- 发布:2021-12-29 18:14
- 更新:2021-12-29 20:19
- 阅读:964
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows 10
HBuilderX类型: 正式
HBuilderX版本号: 3.3.4
手机系统: Android
手机系统版本号: Android 11
手机厂商: 三星
手机机型: Galaxy S20 5G
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
下载官方app demo项目实例,运行到三星s20,点击获取位置
下载官方app demo项目实例,运行到三星s20,点击获取位置
预期结果:
获取到定位
获取到定位
实际结果:
获取定位速度很慢,时好时坏,失败了就会返回下面的信息
{
"errMsg": "getLocation:fail No location providers available.",
"errCode": 2,
"code": 2
}
获取定位速度很慢,时好时坏,失败了就会返回下面的信息
{
"errMsg": "getLocation:fail No location providers available.",
"errCode": 2,
"code": 2
}
4 个回复
d***@whaiw.com (作者)
用Android Studio 模拟器 模拟 Android 11系统 也会出现一样的问题,获取定位特别慢,偶尔成功偶尔失败
d***@whaiw.com (作者)
用Android Studio模拟器模拟Android10 就没有这个问题
DCloud_UNI_GSQ
默认上 wgs84 类型,定位慢的问题将会排查。
你看下这里 https://ask.dcloud.net.cn/article/39552 也确认一下自己是否需要 wgs84 类型。
d***@whaiw.com (作者)
就是需要wgs84的 因为app不是做内陆的。。 之前用wgs84在android 11上没啥问题
2021-12-30 08:57
DCloud_UNI_GSQ
回复 d***@whaiw.com: 好的
2021-12-30 11:30
DCloud_Android_ST
默认坐标系使用 wgs84,会调用系统定位。目前你的描述是定位失败了.
关于返回错误信息是“No location providers available.”是错误描述有问题后期会修改。目前系统定位的体验取决于系统内部定位模块的机制。不同系统表现不太一致。我们也会不断地去优化系统定位逻辑。如想获取到更优的体验建议更改坐标类型,使用三方定位SDK。
d***@whaiw.com (作者)
系统的话,就是很普通的android11呀,用的是android studio装的模拟器模拟的,没有国内各种厂商的那些,因为不是内陆的,所以都没有用国内地图厂商提供的sdk,一直用的wgs84系统定位
2021-12-30 10:23
DCloud_Android_ST
回复 d***@whaiw.com: 好的 模拟器cpu类型用的arm 还是x86
2021-12-30 11:03
d***@whaiw.com (作者)
回复 DCloud_Android_ST: x86
2021-12-30 11:48