使用的是浏览器获取定位
const { BMapGL }: any = window
const geolocation = new BMapGL.Geolocation();
geolocation.getCurrentPosition(async function (r) {
if (this.getStatus() === 0) {
params.accSignInLong = r.point.lng
params.accSignInLat = r.point.lat
if (r.accuracy === 0) {
setShowMessage(true)
Taro.atMessage({
message: '请打开定位服务',
type: 'error',
})
} else {
const { data: { code, message } } = await crmGpsDoSignInApi(params)
if (code === 200) {
Taro.atMessage({
message: message,
type: 'success',
})
const filterFlsg = signInStatusList.some(v => v.checked);
if (filterFlsg) {
screenGetList();
} else {
getList()
}
setShowDrawer(false)
setIsSubdisabled(false)
}
if (code === 500) {
Taro.atMessage({
message: message,
type: 'error',
})
setShowDrawer(true)
setIsSubdisabled(false)
}
}
}
})
r.accuracy 这个参数,当安卓机关闭GPS的时候会返回0
苹果机关闭GPS的时候不会走这里,有百度地图内置的code码。
所以这个契机,可以作为安卓机未开启GPS时的一个判断
各位有更好的方案也请告知下~