收藏
回答

GPS关闭以后Android手机获取定位不变【BUG】

框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 getLocation 客户端 Android 6.6.1 weChatLib:1.9.6(2018.1.29 10.59:39)

当手机的定位功能关闭以后通过getLocation方法返回的数据将不发生变化。


demo演示:


1.关闭手机的定位功能

2.创建一个新的小程序,然后将index.js内容替换为如下即可:



//index.js
//获取应用实例
const app = getApp()
 
 
 
var mylocation = function(tag){
    wx.getLocation({
      type: 'gcj02',
      success: function (res) {
        var latitude = res.latitude;
        var longitude = res.longitude;
 
 
        // wx.openLocation({
        //   latitude: latitude,
        //   longitude: longitude,
        //   scale: 28
        // });
 
        var address = latitude + "," + longitude;
 
        console.log("address:" + address);
 
        tag.setData({ motto: address });
      },
      fail:function(res){
        console.log(res);
      }
    });
 
}
 
 
Page({
  data: {
    motto: 'Hello World',
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  //事件处理函数
  bindViewTap: function() {
    mylocation(this);
  },
  onLoad: function () {
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUse){
      // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },
  getUserInfo: function(e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }
})



演示说明:


点击头像将会获取定位信息然后在Hello World的地方展示,若开启定位功能的时候走动并一直点击时位置会不断变化。但是当关闭定位时位置将不发生变化。


BUG影响:

我们做的是一个打卡功能。存在的缺陷是用户在公司时将定位获取以后并关闭定位功能。只要不退出小程序,那么回家了位置也是在公司。这时候就会导致打卡不准确。


测试手机型号:


红米手机 Redmi 4X  系统:MIUI9.1 稳定版

华为荣耀8   系统:EMUI 5.0.1


期望效果:


  1. 当用户关闭定位时获取定位时执行error回调,目前测试ios下是这样的。

  2. 当用户关闭定位时通过网络获取并返回有效位置。

回答关注问题邀请回答
收藏

1 个回答

  • 2019-03-28

    这个问题没人关注吗><

    2019-03-28
    有用
    回复 2
    • 沈喬喬
      沈喬喬
      2019-05-21

      我也遇到这个问题了

      2019-05-21
      回复
    • 青春前行
      青春前行
      2023-06-14
      同样遇到了这个问题
      2023-06-14
      回复
登录 后发表内容