首页 > 其他分享 >周期性更新

周期性更新

时间:2024-12-24 10:10:46浏览次数:3  
标签:程序 更新 周期性 灰度 数据 wx

周期性更新

基础库 2.8.0 开始支持,低版本需做兼容处理

生效条件:用户七天内使用过的小程序

周期性更新能够在用户未打开小程序的情况下,也能从服务器提前拉取数据,当用户打开小程序时可以更快地渲染页面,减少用户等待时间,增强在弱网条件下的可用性。

使用流程

1. 配置数据下载地址

数据来源为开发者服务器时支持配置灰度比例,灰度数据下载地址可以区别于数据下载地址,灰度比例不可回退,且 100% 灰度视为更新数据地址为灰度数据地址, 如需进行测试,可将灰度比例改为百分之 0,即只对开发者体验者进行灰度。

  1. 登录小程序 MP 管理后台,进入开发管理 -> 开发设置 -> 数据周期性更新,点击开启
  2. 个人主体小程序仅支持配置云开发环境
  3. 非个人主体小程序支持配置HTTPS数据下载地址、 云开发环境

img img

2. 设置 TOKEN

用户登录小程序后,小程序可以调用 wx.setBackgroundFetchToken() 设置一个自定义 TOKEN 字符串,可以跟用户态相关,TOKEN 会在下一次预拉取或周期性更新,向开发者服务器发起请求时带上,便于服务器校验请求合法性。

Tips: wx.setBackgroundFetchToken 是可选接口,不是必须调用的。

示例:

App({
  onLaunch() {
    // 用户登录后
    wx.setBackgroundFetchToken({
      token: 'xxx'
    })
  }
})

3. 微信客户端定期拉取数据

微信客户端会在一定的网络条件下,每隔 12 小时(以上一次成功更新的时间为准)向配置的数据下载地址发起一个 HTTP GET 请求,其中包含的 query 参数如下,数据获取到后会将整个 HTTP body 缓存到本地。

参数 类型 说明
appid String 小程序标识
token String 前面设置的 TOKEN
timestamp Number 时间戳,微信客户端发起请求的时间

query 参数会使用 urlencode 处理

开发者服务器接口返回的数据类型应为字符串,且大小应不超过 256KB,否则将无法缓存数据

4. 读取数据

用户启动小程序时,调用 wx.getBackgroundFetchData() 获取已缓存到本地的数据。

示例:

App({
  onLaunch() {
    wx.getBackgroundFetchData({
      fetchType: 'periodic',
      success(res) {
        console.log(res.fetchedData) // 缓存数据
        console.log(res.timeStamp) // 客户端拿到缓存数据的时间戳
      }
    })
  }
})

调试方法

由于微信客户端每隔 12 个小时才会发起一次请求,调试周期性更新功能会显得不太方便。 因此为了方便调试周期性数据,工具提供了下面的调试能力给到开发者,具体可查看周期性数据调试

标签:程序,更新,周期性,灰度,数据,wx
From: https://www.cnblogs.com/AtlasLapetos/p/18623974

相关文章

  • Colyseus 的高效状态同步与增量更新
    在多人在线游戏和实时应用中,状态同步是一个核心挑战。Colyseus通过独特的增量更新机制,显著提高了状态同步的效率。以下是详细的讲解:1.什么是增量更新?完整状态同步:传统方式是每次状态改变后,服务器将完整的状态数据发送给所有客户端。这种方法简单但低效,尤其在状态数据庞大......
  • ✨ 自动化更新 Docker 应用:Watchtower 魔法
    ✨自动化更新Docker应用:Watchtower魔法......
  • 站在巨人的肩膀上开发 — Toutatis 批量获取 Instagram 数据更新数据库
    对爬虫不是很熟悉,电商平台数据库里沉淀了一批博主的基本信息(包括主页链接)分别来自Instagram,TikTok和YouTube,但博主的粉丝量会增长,如何保持博主粉丝的实时更新就是一个问题,TikTok和YouTube的博主比较好解决,直接访问该博主的主页链接即可获取该博主的粉丝数量,但Instagram比较......
  • gorm默认值不更新问题
    问题描述原有数据结构,如下: go代码解读复制代码typeAdvConfirmstruct{ IDint`gorm:"column:id;primary_key"json:"id"` StaffIDint`gorm:"column:staff_id"json:"staff_id"` AdvertiserID......
  • Firefox火狐浏览器更新后旧用户数据怎么找回
    如果你的Firefox浏览器更新后,启动时丢失了您使用旧版本浏览器时的书签、密码、保存的标签页与其他设置,请检查您的数据是否在另外一个配置文件中。这种情况可能因为每一个已安装的Firefox都有自己专属的配置。要从另一个配置文件中恢复Firefox浏览器的数据与设置:在Firefox浏览......
  • Qt编写机器码秘钥控制/日期防篡改/离线使用/硬件标识/运行时间/数量控制/批量更新秘钥
    一、前言说明搞软件开发一直追求精益求精的目标,从第一版的秘钥生成器到今天这个版本,经历了十年的时间,最初的版本做的非常简陋,就是搞了个异或加密,控制运行时间,后面又增加设备数量的控制,然后就是到期时间的限制。这种有个巨大缺陷就是可复制性,如果将授权的秘钥文件,拷贝到其他电脑也......
  • INFINI Labs 产品更新 | Console/Gateway/Agent 等产品开源发布首个版本
    INFINILabs产品又更新啦~,包括Easysearchv1.9.0、Gateway、Console、Agent、Loadgenv1.27.0。本次各产品更新了很多亮点功能,如Easysearch优化了多版本兼容配置;Console/Gateway/Agent/Loadgen及Framework开源后,发布首个重大更新版本,支持过期元数据删除,指标图表懒加载,指标......
  • Redis篇--常见问题篇6--缓存一致性1(Mysql和Redis缓存一致,更新数据库删除缓存策略)
    1、概述在使用Redis作为MySQL的缓存层时,缓存一致性问题是指Redis中的缓存数据与MySQL数据库中的实际数据不一致的情况。这可能会导致读取到过期或错误的数据,从而影响系统的正确性和用户体验。为了减轻数据库的压力,通常读操作都是先读缓存,缓存没有则读数据库数据在写入缓存......
  • (长期更新)《零基础入门 ArcGIS(ArcMap) 》实验五----土地整治(超超超详细!!!)
    土地整治        土地整治是指在一定的区域内,按照土地利用总体规划确定的目标和用途,采取工程和生物措施,以农用地为主要对象,同时视区域内居民点、工矿废弃地和未利用地等适宣性况生费行综合整治,并以增加耕地面积、提高耕地质量、建设高标准基本农田为目的,改善农......
  • 请问如何在 Z-BlogPHP 中开启 Beta 版更新推送?
    在Z-BlogPHP中开启Beta版更新推送可以帮助你及时获取最新的功能和改进,但同时也需要注意Beta版可能存在不稳定的情况。以下是开启Beta版更新推送的详细步骤:进入后台管理:登录Z-BlogPHP后台管理界面,使用你在安装时设置的管理员用户名和密码。访问应用中心:在后台......