uni-app 获取小程序定位授权状态

获取小程序定位授权状态:1 否 2 是

getLocationAuthorize(){
				return new Promise((resolve,reject)=>{
					//获取用户的当前设置
					uni.getSetting({
						success:(res)=>{
							//判断是否有定位授权scope.userLocation,true表示已授权
							if (!res.authSetting['scope.userLocation']) {
								//提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。如果用户之前拒绝了授权,此接口会直接进入失败回调
								uni.authorize({
									scope: 'scope.userLocation',
									success:()=>{
										resolve(2)
									},
									fail:()=>{
										//根据缓存判断只显示一次跳转设置页授权的弹框
										let locationAuth = uni.getStorageSync('locationAuth');
										if (!locationAuth&&err.errMsg == 'authorize:fail auth deny') {
											uni.setStorageSync('locationAuth',true);
											uni.showModal({
												title: '授权提示',
												content: '是否允许获取定位权限',
												success: (resp) => {
													if (resp.confirm) {
														//调起客户端小程序设置界面,返回用户设置的操作结果。
														uni.openSetting({
															success(
																settingdata
															) {
																//用户设置定位权限
																if (settingdata
																	.authSetting[
																		"scope.userLocation"
																	]) {
																	resolve(2)
																} else {
																	resolve(1)
																}
															}
														})
													} else {
														//取消弹框
														resolve(1)
													}
												}
											})
									  }
									}
								})
							} else{
								resolve(2)
							}
						}
					});
				})
			},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值