微信小程序位置授权处理方法
2019-06-13 11:07
846 查看
这两天在做小程序调取地图的时候遇到一个问题,如果用户第一次拒绝了位置权限请求。那么就不会再次唤起授权弹出。需要我们引导用户去开启。
具体做法如下。 在 aap.json中加入授权配置
"permission": { "scope.userLocation": { "desc": "你的位置信息将用于小程序位置接口的效果展示" } }
在 page页面中使用,需要有几个注意的地方,初次使用的时候,去申请权限。这里我是放在onShow 方法里面。
onShow: function () { //初始获取定位权限 wx.authorize({ scope: 'scope.userLocation', success: (res) => { }, }) },
然后在调用地图地位。或者获取用户权限的函数去判断是否有定位权限,如果没有那么引导用户开启权限。 如下:我有一个Input去触发选择地图事件。
<input bindfocus="openMap" value='{{address}}' placeholder="点击选择详细地址"></input>
事件处理
openMap:function(e){ var that = this wx.getSetting({ success(res){ //这里判断是否有地位权限 if (!res.authSetting['scope.userLocation']) { wx.showModal({ title: '提示', content: '请求获取位置权限', success:function(res){ if(res.confirm==false){ return false; } wx.openSetting({ success(res) { //如果再次拒绝则返回页面并提示 if (!res.authSetting['scope.userLocation']) { wx.showToast({ title: '此功能需获取位置信息,请重新设置', duration: 3000, icon: 'none' }) } else { //允许授权,调用地图 that.chooseMap() } } }) } }) } else { //如果有定位权限,调用地图 that.chooseMap() } } }) }, chooseMap(){ var that = this wx.chooseLocation({ success: function (res) { that.setData({ address: res.address, latitude: res.latitude, longitude: res.longitude }) }, fail: function (res) { console.log(res) } }) },
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
相关文章推荐
- 微信小程序 兼容用户拒绝获取位置权限 用户拒绝权限处理
- 微信小程序新版用户授权方式处理
- 微信小程序非跳转式组件授权登录的方法示例
- 【总结】微信小程序 - 用户授权时被拒绝的解决办法(授权失败场景处理)
- uni-app之APP和小程序微信授权方法
- 微信小程序之支付后调用SDK的异步通知及验证处理订单方法
- 小程序没有授权时的处理方法
- 微信小程序 兼容用户拒绝获取位置权限 用户拒绝权限处理
- 微信小程序用户位置权限的获取方法(拒绝后提醒)
- 微信小程序 兼容用户拒绝获取位置权限 用户拒绝权限处理
- [微信]微信小程序开发--用户昵称中带有emoji表情的处理方法
- 微信小程序利用co处理异步流程的方法教程
- 微信小程序处理用户拒绝授权情况及微信登录,登录保存等系列解决方案
- 微信小程序处理用户拒绝授权情况及微信登录,登录保存等系列解决方案
- 微信小程序中转义字符的处理方法
- 微信7.0版本之后小程序地理位置授权
- 微信小程序获取地理位置和地名的方法
- 【微信小程序】再次授权地理位置getLocation+openSetting使用
- 微信小程序授权登录及解密unionId出错的方法
- 微信小程序处理用户拒绝授权情况及微信登录,登录保存等系列解决方案