当前位置:首页 > 新闻动态 > 网站文章

微信小程序用户位置获取及授权设置方法总结一

来源: 浏览:116 时间:2023-08-09


一、微信小程序获取用户当前位置有四个方式:

1、 wx.getLocation(多与wx.openLocation一起用)

获取当前的精度、纬度、速度。需要授权。当type设置为gcj02 返回可用于wx.openLocation的坐标,且显示在map地图上的坐标要求的是gcj02标准才准确!!




注意:

​wx.onLocationChange​

2、wx.openLocation(Object object)

使用微信内置地图查看位置,需要授权,使用微信内置地图查看位置。多半用于查看起点到终点的路线怎么走



应用场景



效果




3、wx.chooseLocation



需要授权,打开地图选择位置,选择完位置返回的位置信息,使用的是gcj02 国测局坐标系!!!

效果如下












二、授权方法有三种:

1. wx.getSetting

获取用户的当前设置,返回值中只会出现小程序已经向用户请求过的权限,类似下面的样子,获取的结果放在 res.authSetting 属性上

示例代码:



下面以获取位置为例

2. wx.openSetting

调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的​​权限​​,类似下面的样子

示例代码:



效果图




注意:

​button​​wx.openSetting​

示例代码:




3. wx.authorize

提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。更多用法详见 ​​用户授权​​

示例代码:



效果图



 关于授权这里就大概讲到这里,具体有关授权的详细讲解看​​官方文档​​


注意:

​wx.authorize({scope: "scope.userInfo"})​​scope.userLocation​​scope.userLocationBackground​

示例代码




效果图


通过上面的讲解,下面是实际业务中的综合应用场景

假如第一次授权被拒绝,那么我们要怎么进行处理

思路:假如我第一次使用wx.getLocation()获取权限被拒绝,那么后面我再调用这个api的时候,不会再出现授权弹窗,会默认触发wx.getLocation()的fail方法 然后使用wx.getSetting(),那么我可以在fail方法里面,使用wx.getSetting(),这样就每次都能判断是否已经给与了权限了。

示例代码:



大概如下:具体应用再结合不同的业务进行修改



地址 · ADDRESS

地址:建邺区新城科技园嘉陵江东街18号2层

邮箱:309474043@qq.Com

点击查看更多案例

联系 · CALL TEL

400-8793-956

售后专线:025-65016872

业务QQ:309474043    售后QQ:1850555641

©南京安优网络科技有限公司 版权所有   苏ICP备12071769号-4  网站地图