微信小程序: 用户拒绝获取定位信息后如何再次获得
2018-11-08 11:23
1206 查看
获取用户定位信息是小程序比较常用的功能,而且很多需求是一进入就需要拿到定位的信息,所以很多小程序都是打开后就有个询问弹窗
这时候有些人会点【取消】,就拿不到定位信息了,而且小程序的特殊运行机制,只要你点取消了,以后每次进来都是默认拒绝了,也就是说,以后进来都拿不到定位信息了,必须要把小程序删除后再次进入才会弹窗询问,这给我们开发者带来了很多烦恼。
怎么解决呢,我们可以用微信小程序提供的API wx.openSetting(Object object)
wx.openSetting(Object object)
支持版本 >= 1.1.0
调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限。
注意:2.3.0 版本开始,用户发生点击行为后,才可以跳转打开设置页,管理授权信息。
调用打开后的界面如下:
看到里面都是已经向用户请求过的权限,可以把地理位置设置为允许。返回后再次调用getLocation接口就可以拿到定位信息了。
上个简单的代码
[code]<!--index.wxml--> <button bindtap='toSetting'>重新定位</button>
[code]//index.js toSetting() { 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组件
[code]<!--index.wxml--> <button open-type='openSetting' bindopensetting="openSetting">重新定位</button>
[code]//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 } }) } },
阅读更多
相关文章推荐
- 【微信小程序】用户首次进入小程序拒绝授权,如何再次调用授权页面,获取用户信息userInfo
- 关于微信小程序拒绝授权后,重新授权并获取用户信息
- 微信小程序如何获取openid及用户信息
- 微信小程序判断用户是否需要再次授权获取个人信息
- 微信小程序如何再次获取用户授权
- 微信小程序如何再次获取用户授权
- 微信小程序如何获取用户信息
- 微信小程序wx.getImageInfo()如何获取图片信息
- 微信小程序维护登录态与获取用户信息
- PHP如何获取微信用户的 openid 和基本信息
- 微信小程序授权获取用户详细信息openid的实例详解
- 微信小程序维护登录态与获取用户信息
- 微信小程序获取用户信息
- Window Service程序中如何获取登陆用户的信息
- 微信小程序如何获取用户手机号
- 微信小程序新的授权方式,获取用户信息
- Thinkphp5微信小程序获取用户信息接口的实例详解
- 如何获取微信用户的名字等信息
- 微信小程序维护登录态与获取用户信息