收藏
回答

华为手机使用后台持续定位,进入后台,定位失效(wx.startLocationUpdateBack)

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.startLocationUpdateBackground 工具 8.0.49 3.0.1

使用华为手机,开启持续定位,页面进入后台,再次进入页面该定位,定位失效

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

2 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    04-30

    "经确认微信安卓客户端8.0.49版本,当小程序页面同时存在地图和请求定位时偶现异常.

    https://developers.weixin.qq.com/miniprogram/dev/component/map.html

    开发者侧可以通过

    a.通过设置地图show-location为true  

    b.延迟定位请求到地图出现之后 规避

    用户侧可以引导划掉小程序重新进小程序来重新定位


    客户端尽快修复中,带来不便十分抱歉


    04-30
    有用
    回复
  • 微盟
    微盟
    04-28

    华为手机在后台持续定位时,可能会因为其自身的内存管理策略,导致后台进程被杀死,从而导致定位失效。

    为了解决这个问题,你可以尝试以下方法:

    在小程序的app.json文件中,将"permission"字段的值设置为"scope.userLocationBackground",并在"permission"字段中添加"desc"字段,用于描述为什么需要获取后台定位权限。

    {
          "permission": {
        
                "scope.userLocationBackground": {
            
                        "desc""需要获取后台定位权限,以便在后台持续定位"
                }
          }
    }
    


    在调用wx.startLocationUpdateBack之前,先调用wx.authorize方法请求用户授权获取后台定位权限。

    wx.authorize({
    
      scope'scope.userLocationBackground',
    
      success() {
    
        // 用户已经同意获取后台定位权限,可以调用wx.startLocationUpdateBack方法进行后台持续定位
    
        wx.startLocationUpdateBack({
    
          successfunction(res{
    
            console.log('startLocationUpdateBack success', res)
    
          },
    
          failfunction(res{
    
            console.log('startLocationUpdateBack fail', res)
    
          }
    
        })
    
      },
    
      fail() {
    
        // 用户拒绝授权获取后台定位权限,可以在这里进行提示
    
      }
    
    })
    

    注意,上述方法仅在华为手机上测试通过,其他品牌手机可能存在不同的内存管理策略,因此需要根据实际情况进行调整。


    04-28
    有用
    回复
登录 后发表内容