手机版

如何获取微信小程序用户的位置权限(拒绝后提醒)

时间:2021-08-28 来源:互联网 编辑:宝哥软件园 浏览:

微信小程序获取用户当前位置有三种方式:

1.wx.getLocation(主要用于wx.openLocation)

获得当前的精度、纬度和速度。不需要授权。当类型设置为gcj02时,返回wx.openLocation可用的坐标

2.wx.chooseLocation

需要授权。打开地图选择一个位置

第一次调用方法时首先发生

允许权限,然后再次出现

如果第一次不允许,总是调用wx.chooseLocation的fail方法

3.wx.openLocation

需要授权,使用微信内置地图查看位置。大部分都是用来看如何从起点走到终点的

有三种授权方法:

1.wx.getSetting

获取用户的当前设置,只有applet向用户请求的权限才会出现在返回值中,如下所示

2.wx.openSetting

打开权限设置选择界面,只有小程序向用户请求的权限才会出现在设置界面,类似如下

3.wx.authorize

提前向用户发起授权请求。调用后,会立即弹出一个窗口,询问用户是否同意授权小程序使用某个功能或获取用户的一些数据,但实际上不会调用相应的界面。如果用户之前已经同意授权,则不会出现弹出窗口,直接返回成功。类似于以下内容

这是wx.authorize显示的内容

问题来了:如果我第一次使用wx.chooseLocation()获取权限,然后再次使用wx.getSetting()获取权限,会怎么样?

思考:wx.chooseLocation()有一个失败的方法。如果是第一次拒绝后调用选择映射触发的,那么我可以在fail方法中使用wx.getSetting(),这样我就可以判断是否每次都给出了权限。

第一步:因为定位方法可以多次使用,所以为了方便调用,我在App.js中编写了定位方法

App({ //获取用户的地理位置权限getpermission :函数(obj){ wx . choose location({ success :函数(RES){ obj . setdata({ addr : RES . Address//成功调用后直接设置的地址})}),fail : function(){ wx . get setting({ success 3360 function(RES){ varstatu=RES . auth setting;if(!Statu ['范围。user location ']){ wx . show modal({ title : '是否授权当前位置',content: '需要获取您的地理位置,请确认授权,否则地图功能将不可用',success 3360 function(tip){ if(tip . confirm){ wx . opensetting({ success : function(data){ if(data . authsetting [' scope . user location ']==true){ wx . show toast({ title : '授权成功})} else {wx。showtoast ({title : '授权失败',图标: '成功',持续时间: 1000 })} } } })}),Fail: function (RES) {wx。showtoast ({title : '未能调用授权窗口',图标: '成功',持续时间: 1000})}}),})步骤2:在需要获取地址的页面上:

var app=GetApp();Page({ data:{ addr: '请选择位置' },//选择获取地理位置getaddress3360函数(){var即=thisapp.getPermission(即;//通过传入该值,可以直接在app.js页面上设置内容。})最终渲染:

最后,在手机上获得的位置偏差不会太大。

-

更新wx.openSetting需要注意的事项.

在2.3.0版本的开始,用户可以在点击行为后跳转到打开设置页面并管理授权信息。

也就是在2.3.0版本之后,当我通过上面wx.showModal的回调函数调用wx.openSetting时,会出现以下错误:

openSetting:fail只能由用户点击手势调用。

但是,从我的测试2.2.4开始到2.3.1,会出现上述错误。

2.3.2及以上不会出现这种问题。

当我测试2.0.8到2.2.3时,会出现以下错误。

其他人没有这个问题。我不明白。

摘要

以上是边肖介绍的获取微信小程序用户位置权限的方法(拒绝后提醒)。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

版权声明:如何获取微信小程序用户的位置权限(拒绝后提醒)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。