小程序处理微信设置关闭位置权限进行提示

1. 如果在设置中设置微信位置权限为不允许

image.png
image.png
在uni.getLocation api中会固定返回false但是此时提示的是小程序位置权限,问题在于小程序位置权限是开启的,因此此处是需要区分是微信无位置权限还是小程序无位置权限,如果是微信无权限,应该要提示用户,并引导用户进行位置权限的开启(不然存在误区,小程序用户检查权限发现已经给予位置权限,但是小程序仍然提示需要获取权限,属于特殊情况,一般很少有人微信app无地址权限)

2.京东的处理

image.png

3.uni处理

  // successCallBack 即为确认微信获取位置权限后进行的后续处理代码
  getSystemLocation (successCallBack) {
    const systemInf = uni.getSystemInfoSync()
    if (systemInf.uniPlatform === "mp-weixin") {
      const appAuthorizeSetting = uni.getAppAuthorizeSetting()
      // 开发者工具不校验 开发者工具无法获取设置的locationAuthorized
      if (appAuthorizeSetting.locationAuthorized !== 'authorized' && systemInf.platform !== 'devtools') {
        uni.showModal({
          title: '无法获取你的位置信息',
          content: '请在【位置】中允许微信在【使用APP期间】访问位置信息,并开启【精准位置】开关。',
          confirmText: '去授权',
          success: (res) => {
            if (res.confirm) {
              this.returnSetting = true
              uni.openAppAuthorizeSetting({
                success (res) {
                  const appAuthorizeSetting = uni.getAppAuthorizeSetting()
                  if (appAuthorizeSetting.locationAuthorized === 'authorized') {
                    successCallBack()
                  }
                }
              })
            }
          }
        })
      } else {
        successCallBack()
      }
    } else {
      successCallBack()
    }
  }

处理效果.png

posted @ 2024-04-15 11:17  story.Write(z)  阅读(83)  评论(0编辑  收藏  举报