微信小程序> 微信小程序:用户拒绝获取定位信息后如何再次获得

微信小程序:用户拒绝获取定位信息后如何再次获得

浏览量:3692 时间: 来源:laishaojiang

获取用户定位信息是小程序比较常用的功能,而且很多需求是一进入就需要拿到定位的信息,所以很多小程序都是打开后就有个询问弹窗

这时候有些人会点【取消】,就拿不到定位信息了,而且小程序的特殊运行机制,只要你点取消了,以后每次进来都是默认拒绝了,也就是说,以后进来都拿不到定位信息了,必须要把小程序删除后再次进入才会弹窗询问,这给我们开发者带来了很多烦恼。

怎么解决呢,我们可以用微信小程序提供的API wx.openSetting(Object object)

 

wx.openSetting(Object object)

支持版本 >= 1.1.0

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

注意:2.3.0 版本开始,用户发生点击行为后,才可以跳转打开设置页,管理授权信息。

调用打开后的界面如下:

看到里面都是已经向用户请求过的权限,可以把地理位置设置为允许。返回后再次调用getLocation接口就可以拿到定位信息了。

上个简单的代码

<!--index.wxml--><button bindtap='toSetting'>重新定位</button>
//index.jstoSetting() {    wx.openSetting({      success(res) {        console.log(res.authSetting)        if (res.authSetting["scope.userLocation"]) {          // res.authSetting["scope.userLocation"]为trueb表示用户已同意获得定位信息,此时调用getlocation可以拿到信息          wx.getLocation({            type: 'wgs84',            success(res) {              const latitude = res.latitude              const longitude = res.longitude              const speed = res.speed              const accuracy = res.accuracy            }          })        }      }    })  },

还一种方式是直接用button组件

<!--index.wxml--><button open-type='openSetting' bindopensetting="openSetting">重新定位</button>
//index.js openSetting(e) {//跳转授权设置之后的回调    if (e.detail.authSetting['scope.userLocation']) { //此处同上同理      wx.getLocation({        type: 'wgs84',        success(res) {          const latitude = res.latitude          const longitude = res.longitude          const speed = res.speed          const accuracy = res.accuracy        }      })    }  },    

 

小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎