美文网首页
小程序chooseLocation,安卓获取不到省市的BUG

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

作者: G_console | 来源:发表于2019-11-13 11:45 被阅读0次

    描述

    小程序使用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

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