收藏
回答

小程序wx.getLocation用户拒绝授权后如何再次获取位置信息?

这里微信小程序我就写了一个简单的获取位置信息的代码

<map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="14" hasLocation = "{{hasLocation}}" show-location="true" bindcontroltap="controltap" markers="{{markers}}" covers="{{covers}}" bindmarkertap="markertap" bindregionchange="regionchange" style="width: 100%; height: 100%;">
        <cover-view class="map-cover" catchtap="goBack">
            <cover-image src="/images/thatweizhi.png"></cover-image>
        </cover-view>
    </map>

然后是js代码:

onLoad: function (options{
      this.getLocation();
  },
goBack() {
    console.log("111");
    this.getLocation();
  },

 getLocation(){
    let that = this;
    wx.getLocation({
      type'gcj02',
      success:function(res){
        console.log(res);
        let latitude = res.latitude;
          let longitude = res.longitude;
          that.setData({
            latitude,
            longitude
          })
      }
    })
  },

想做成的效果是用户进来时会提示弹框让其选择授权或拒绝,当用户拒绝时不会获取位置进行定位,而当用户点击goBack按钮时又能重新定位。但是这样写不能达到效果,请问该怎么做?

回答关注问题邀请回答
收藏

2 个回答

  • 青团社
    青团社
    07-14

    wx.getSetting判断用户是否授权地理位置,如果没授权,提示用户去授权,通过 wx.openSetting打开设置页面 让用户手动开启。

    wx.getSetting({
          success: (res) => {
            let authSetting = res.authSetting
            if (authSetting['scope.userLocation']) {
              // 已授权
            } else {
              wx.showModal({
                title: '您未开启地理位置授权',
                content: 'xxxx',
                success: res => {
                  if (res.confirm) {
                    wx.openSetting()
                  }
                }
              })
            }
          }
        })        
    
    07-14
    有用 2
    回复 2
  • 香蕉不是笨啦啦
    香蕉不是笨啦啦
    07-14

    getSetting

    07-14
    有用
    回复
登录 后发表内容
问题标签