微信小程序wx.chooseLocation(),项目报未使用你

2019-08-14  本文已影响0人  Jure_joe

1、上图:


微信图片_20190814101420.png

2、问题:项目现这个BUG,仔细核查代码也并未发现错误,最终仔细阅读微信开发文档后,发现有漏配置的项。
3、根本原因是在处理授权操作后,并没有在app.json中配置关于地理位置的用途说明字段,如:

"permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示" // 高速公路行驶持续后台定位
    }
  }

可参考

image.png
4、js中操作地图选择前配置的权限代码如下(程序中使用该api,用户首次调用会提示是否获取权限,前提就是要在app.json中配置,如果不配置,就会出现该bug。至于在提示窗口选择取消后,后续的处理授权工作则在fail的回调函数中做处理):
wx.chooseLocation({
                success(res) {
                  wx.showLoading({
                    title: '地图询价中……',
                    mask:true
                  })
                  var districtName = res.name;
                  var detailAddress = res.address;
                  var latitude = res.latitude;
                  var longitude = res.longitude;
                  ///console.log("districtName:"+districtName) 
                  // 将BMap坐标转换为GCJ02坐标
                  var result = gcoord.transform([longitude, latitude], gcoord.GCJ02, gcoord.BMap);
                  longitude = result[0];
                  latitude = result[1];
                  var url = "bmapEnquiry";
                  that.setData({
                    ["entrustObject.estatename"]:districtName
                  });
                  var QRdata = {};
                  QRdata.lng = longitude;
                  QRdata.lat = latitude;
                  var res = urls.urls(url, QRdata, that.bMapSuccessed, that.bMapfailed);
                },
                fail: function (res) {
                  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选择地方
                                   
                                      }
                                    })
                                  } else {
                                    wx.showToast({
                                      title: '授权失败',
                                      icon: 'none',
                                      duration: 1000
                                    })
                                  }
                                }
                              })
                            }
                          }
                        })
                      }
                    },
                    fail: function (res) {
                      wx.showToast({
                        title: '调用授权窗口失败',
                        icon: 'none',
                        duration: 1000
                      })
                    }
                  })
上一篇下一篇

猜你喜欢

热点阅读