小程序chooseLocation,安卓获取不到省市的BUG

描述

小程序使用wx.chooseLocation方法选择地址,真机测试安卓上默认的第一个地址没有省市;
详细内容可以看我在微信开放社区发的帖子:假装我是标题 https://developers.weixin.qq.com...

解决方案

调用QQmapSDK里的逆地址解析方法,文档地址:https://lbs.qq.com/qqmap_wx_jssdk/index.html

wx.chooseLocation({
  success:function(response) {
    const { address } = response;
    let [province, city] =
      address.match(/.+?(省|市|自治区|自治州|行政区)/g) || [];  //正则匹配省市

    if(!province || province == '' || !city || city == ''){  //如果没有获取到省市
      //QQMapSdk: new的一个qqmapsdk对象
      QQMapSdk.reverseGeocoder({
        location: {latitude: response.latitude,longitude: response.longitude},
        success: function (res) {
          console.log("qqmapsdk-city",res)
          city = res.result.address_component.city
          province = res.result.address_component.province

        },
        fail: function(err){
          console.log("qqmapsdk-err",err)
        }
      })
    }

  },
  fail:function(err) {
    console.log("err",err);
    wx.hideLoading()
    if(err.errMsg == 'chooseLocation:fail auth deny'){
      wx.showModal({
        content: '请点击确定手动打开定位授权',
        title: '获取地址失败!',
        success(result){
          if(result.confirm){
            wx.openSetting({
              success (res) {
                console.log(res.authSetting)
              },
              fail (err){
                console.log(err)
              }
            })
          }
        }
      });
    }else{
      wx.showToast({
        icon: 'none',
        title: "选择地址失败",
      });
    }
  }
})

你可能感兴趣的:(小程序chooseLocation,安卓获取不到省市的BUG)