小程序----选择地理位置 ( wx.chooseLocation ) 和 获取地理位置 (wx.getSetting)

Posted 大熊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序----选择地理位置 ( wx.chooseLocation ) 和 获取地理位置 (wx.getSetting)相关的知识,希望对你有一定的参考价值。

问题来了:假如我第一次使用wx.chooseLocation()获取权限被拒绝,然后使用wx.getSetting()来重新获取权限该怎么做呢?

思路:wx.chooseLocation()有fail方法,如果第一次拒绝之后,以后调用选择地图都是触发的这个,那么我可以在fail方法里面,使用wx.getSetting(),这样就每次都能判断是否已经给与了权限了。

wx.chooseLocation({
      success(res) {
        console.log(res)
        that.setData({
          // hasLocation: true,
          location: formatLocation(res.longitude, res.latitude),
          address: res.address
        })
      },
      fail: function () {
        wx.getSetting({
          success: function (res) {
            var statu = res.authSetting;
            if (!statu[\'scope.userLocation\']) {
              wx.showModal({
                title: \'是否授权当前位置\',
                content: \'需要获取您的地理位置,请确认授权,否则地图功能将无法使用\',
                success: function (tip) {
                  if (tip.confirm) {
                    wx.openSetting({
                      success: function (data) {
                        if (data.authSetting["scope.userLocation"] === true) {
                          wx.showToast({
                            title: \'授权成功\',
                            icon: \'success\',
                            duration: 1000
                          })
                          //授权成功之后,再调用chooseLocation选择地方
                          wx.chooseLocation({
                            success: function (res) {
                              obj.setData({
                                addr: res.address
                              })
                            },
                          })
                        } else {
                          wx.showToast({
                            title: \'授权失败\',
                            icon: \'success\',
                            duration: 1000
                          })
                        }
                      }
                    })
                  }
                }
              })
            }
          },
          fail: function (res) {
            wx.showToast({
              title: \'调用授权窗口失败\',
              icon: \'success\',
              duration: 1000
            })
          }
        })
      }
    })

 

 

效果图: 

 

 

本文转载他人链接: https://www.cnblogs.com/zjjDaily/p/9020921.html

以上是关于小程序----选择地理位置 ( wx.chooseLocation ) 和 获取地理位置 (wx.getSetting)的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序 A~Z城市选择器js文件

小程序-获取用户位置信息

小程序-获取用户位置信息

微信小程序 地图地址解析

小程序地理位置授权逻辑(包括二次授权)

小程序天气工具怎么描述使用场景更容易通过位置接口的申请