安卓的wx.getLocation总是失败呢
发布于 5 年前 作者 tchang 10264 次浏览 来自 问答

对于安卓系列的 手机 wx.Location( {   } )   一直不执行。   调试时 已经确保手机 获取位置 开关 是打开状态。

7 回复

(已解决)如果getLocation函数在安卓上调用的时候一直走到fail可以尝试调用两次getLocation函数

wx.getLocation
          ({
            type: 'gcj02',
            success(res) {
              console.log(res);
              that.data.latitude = res.latitude
              that.data.longitude = res.longitude
            }
          })
        wx.getLocation({
          type: 'wgs84 ',
          success(res) {
            that.data.latitude = res.latitude
            that.data.longitude = res.longitude
            console.log("更新latitude:" + that.data.latitude);
            console.log("更新longitude:" + that.data.longitude);
          },
          fail: function () {
            wx.showToast
              ({
                title: "获取位置信息失败,请稍后再试",
                icon: 'none',
                duration: 2000
              })
          }
        })

安卓手机只有在小程序第一次加载的时候才会主动弹窗地理位置授权,如果用户点击拒绝之后,以后都不会再主动弹窗提醒用户地理位置授权了。对于拒绝授权再次进入的情况,可以使用官方提供的button组件模拟授权弹窗,open-type="openSetting"可以打开授权。

同上只有安卓机会有这个问题,是在开发版本出现的问题, wx.Location( ),只在第一次加载界面的时候是生效的,但是为了调取接口数据,需要打开调试,点击打开调试时,自动退出小程序,在次进入的时候有的时候就不会调用wx.Location(),导致我们需要获取当前位置的数据取不到。   

是的 但是ios是正常的 在线观望 前排刘明

具体报错信息是什么呢?

非常感谢反馈,给大家带来了麻烦,抱歉。
我们尽快修复,估摸着最快也是下个星期了..


本质原因是当小程序页面为map时调getLocation,map showLocation属性冲掉了getLocation的回调
这里可以先1.showlocation置为true,等getLocation回来再置为false 2.getLocation fail后再次调用.

我也碰到这个问题 就是安卓机调wx.getlocation 不执行

回到顶部