获取位置
最近在开发微信H5(就是运行在公众号里面的网页)。
有个功能需要获取用户当前经纬度,想的也很简单。
直接从官方文档去看,应该就有。
该说不说,确实有。
但还是疏漏了,打开调试工具。
异常信息醒目:
getLocation:fail, the permission value is offline verifying
想获取位置,门都没有(没权限)。
具体原因
1. 开发者工具不支持获取位置
这不可能啊,毕竟这么基础的功能,咋可能不支持。
找到个测试网页,可以在开发者工具中打开。
https://www.weixinsxy.com/jssdk/
果然可以获取位置。
只是会弹出授权提示(不完美)。
2. 权限没申请
在jsApi的文档中,有个jsApiList数组,值为需要使用的JS接口列表(1)。
检查了一下我的代码,确实没配置。
果断加上,getLocation配置,大功告成。
加上之后的配置如下,:
jWeixin.config({
debug: false,
appId, //
timestamp,
nonceStr,
signature,
jsApiList: ['chooseWXPay','getLocation'] // 微信支付,获取定位
});
获取定位:
jWeixin.getLocation({
type: 'gcj02',
success: function (res) {
console.log(JSON.stringify(res));
let latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
let longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
let speed = res.speed; // 速度,以A米/每秒计
let accuracy = res.accuracy; // 位置精度
}
});
果然不能大意,为啥?
因为大意失荆州啊~
1: 微信jsApi官方文档-配置
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#4
2: 微信jsApi官方文档-JS接口列表
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#63