微信小程序 授权地理位置被拒绝后 wx.getLocation接口调用失败问题

最近在开发小程序,需要用到位置信息。
在这里插入图片描述

但总有那么一小部分人会点击拒接授权,然后小程序就用不了了。因为是根据所在的城市信息来加载数据,所以就需要引导用户自己打开地理位置授权。像下图
在这里插入图片描述
在这里插入图片描述
废话不多说直接上代码

wx.getSetting({  //先查看授权情况
						success:function(res){
							
							var statu = res.authSetting;
							if(!statu['scope.userLocation']){   //判断是否授权,没有授权就提示下面的信息
								wx.showModal({
									title:'需要获取您的地理位置,请确认授权,否则小程序功能将无法使用',
									cancelColor: '需要获取您的地理位置,请确认授权,否则地图功能将无法使用',
									success:function(tip){
										if(tip.confirm){ //查看是否点击确定
											wx.openSetting({  //打开设置
												success:function(data){
													if(data.authSetting["scope.userLocation"] == true){ //到这一步表示打开了位置授权
														wx.showToast({
															title: '授权成功',
															icon: 'success',
															duration: 1000
														})
														this.onLoad()
														/*
														可以在这里重新请求数据等操作
														*/
														
													}else{
														wx.showToast({
															title: '授权失败',
															icon: 'none',
															duration: 1000
														})
													}

												},
												fail:function(){
													
												}
											})
										}else{
											wx.showToast({
												title: '授权失败',
												icon: 'none',
												duration: 1000
											})
										}
									}
								})
							}
						}
					})

这只是一个简单的授权,如果还有其他麻烦的操作可以在授权成功之后添加,比如重新获取位置信息之类的,我是直接this.onLoad(),当然也有许多别的方法。
如有错误请提出,本人使用小程序时间也不长,欢迎评论,共同进步!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值