微信浏览器,获取地理位置信息,当用户不同意提供地理位置信息时,怎样可以再次询问用户进行授权?

问题描述:苹果手机微信浏览器获取地址时有个询问的弹框,点了两次取消以后,退出公众号或者退出微信重进都无法再次调用获取地址那个弹框。这个有什么办法吗?

var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function(r){
        if(this.getStatus() == BMAP_STATUS_SUCCESS){
            var mk = new BMap.Marker(r.point);
            myposition_lng = r.point.lng;
            myposition_lat = r.point.lat;
            myposition=new BMap.Point(r.point.lng,r.point.lat);
            if(r.accuracy==null){
                  alert('accuracy null:'+r.accuracy);
                  //用户决绝地理位置授权
                  return;
              }else{
                alert('您的位置:'+r.point.lng+','+r.point.lat);
              }
        }
        else {
            alert('failed'+this.getStatus());
        }        
    },{enableHighAccuracy: true});
阅读 7.6k
1 个回答

首次执行 wx.getLocation 小程序将自动调启如下 dialog:

clipboard.png

无论用户选择“确定”或是“取消”,再次进入均不会被询问是否开启定位(调用 100 次 wx.getLocation 也无济于事)。除非用户手动清理微信缓存、更新微信、切换账号...

可通过 wx.openSetting 再次请求用户开启授权:

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题