评论

周期性拉取和数据预拉取两种方法使用 wx.setBackgroundFetchToken()

关于周期性更新和数据预拉取的一些使用方法,或者一些注意的,可能不全,有错误可以指出来,相互学习学习。

查了社区问题,好像对这两种方法使用,很少人提,或者答案不全,或者没有我想要的结果;然后自己给自己加需求使用了这个东西,得到了一下认识,我就把知道的都说下吧:

先上代码:

// 设置周期性或者数据拉取参数
if (wx.canIUse("setBackgroundFetchToken")) { // 判断是否支持该api-2.8.0以上可支持,最好使用基础库判断,我这里简单判断
  wx.setBackgroundFetchToken({
    token: data.id,
   })
  }


获取数据:

// 无论是周期性更新还是数据预拉取都是这个方法,只是参数不同
wx.getBackgroundFetchData({
      fetchType: 'pre', // fetchTylpe参数为:pre-数据预拉取,periodic-周期性更新
      success(res) {
        console.log(res.fetchedData) // 缓存数据
        console.log(res.timeStamp) // 客户端拿到缓存数据的时间戳
        console.log(res.path) // 页面路径
        console.log(res.query) // query 参数
        console.log(res.scene) // 场景值
      }
    })


上连个拉取数据成功的截图:

周期性更新,获取到的数据:

数据预拉取,获取到的数据:

由结果可以感受到返回结构都是一样的,微信发起数据回调都是在属性fetchedData属性里面,需要进行JSON.parse();

这里需要注意下:

1、进入小程序后台配置好能请求的GET请求接口,这里是GET请求哦要注意啦。

2、如果工具提示错误代码:6000101,这个很大可能是因为你配置的接口只支持post或者需要登录认证才能调的接口,报的错误;

3、wx.setBackgroundFetchToken({token: 'xxx'}),这里的token属性key无法修改,当微信调你配置的接口,会在配置的地址后面拼接上toke既(https://baidu.com?token="xxx");

4、周期性数据,你设置了token也不会马上拉取数据的,测试需要借助开发工具点击数据拉取;数据预拉取,设置token下次刷新就有数据了;

5、周期性更新没12小时更新一次,然后缓存数据,但是不能超过256KB; 数据预拉取:token和code只会存在一个,用于标识用户身份。大小应不超过 256KB

最后一次编辑于  2020-07-28  
点赞 5
收藏
评论

4 个评论

  • 艾克 akram.arkin
    艾克 akram.arkin
    2020-10-29

    我的为什么不能写路径

    ---------------------------------------------------------

    2020-10-29
    赞同 2
    回复 8
    • 阿北
      阿北
      2020-10-31
      我也是
      2020-10-31
      回复
    • 哈罗哈皮
      哈罗哈皮
      2020-11-03
      提示说要为业务域名?先配置业务域名然后再填试试
      2020-11-03
      回复
    • 扬
      2020-11-04
      这个问题解决了吗,我也是碰到这个问题
      2020-11-04
      回复
    • 扬
      2020-11-04回复哈罗哈皮
      业务域名也配置了,可是填数据下载地址就报“数据下载地址需为业务域名”
      2020-11-04
      回复
    • 哈罗哈皮
      哈罗哈皮
      2020-11-04回复
      一般不会吧,截图看配置的安全域名?
      2020-11-04
      回复
    查看更多(3)
  • w
    w
    2024-08-28

    路径是需要指定的一个方法吗,这样不可以的吗

    2024-08-28
    赞同
    回复
  • 吉祥果
    吉祥果
    2023-10-17

    可以向接口里添加请求头吗? 没看到配置请求头的地方啊....

    2023-10-17
    赞同
    回复
  • 史恪
    史恪
    2020-08-28
    第一次进入小程序,是不是无法触发数据预拉取,必须先设置setBackgroundFetchToken的token,第二次开始才能获取到数据?
    


    2020-08-28
    赞同
    回复 3
    • 哈罗哈皮
      哈罗哈皮
      2020-08-31
      是的
      2020-08-31
      回复
    • OttoMan
      OttoMan
      2023-05-29回复哈罗哈皮
      进去n次  一只返回之前的缓存。logid都不变。这个遇到过吗
      2023-05-29
      回复
    • 哈罗哈皮
      哈罗哈皮
      2023-06-07
      应该是缓存太重了,用开发工具比较好测试
      2023-06-07
      回复
登录 后发表内容