美文网首页
微信小程序wx.chooseLocation(),项目报未使用你

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

作者: Jure_joe | 来源:发表于2019-08-14 16:51 被阅读0次

    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
                          })
                        }
                      })
    

    相关文章

      网友评论

          本文标题:微信小程序wx.chooseLocation(),项目报未使用你

          本文链接:https://www.haomeiwen.com/subject/cjzwjctx.html