阅读(2845)
赞(12)
QQ小程序 周期性更新
2020-07-02 15:25:25 更新
基础库 1.14.0 版本开始支持。
周期性更新能够在用户未打开小程序的情况下,也能从服务器提前拉取数据,当用户打开小程序时可以更快地渲染页面,减少用户等待时间,增强在弱网条件下的可用性。
使用流程
1. 配置数据下载地址
登录小程序管理后台,进入设置 -> 开发设置 -> 周期性更新,点击启用,填写数据下载地址,只支持 HTTPS。
2. 设置 TOKEN
第一次启动小程序时,调用 qq.setBackgroundFetchToken() 设置一个 TOKEN 字符串,可以跟用户态相关,会在后续 QQ 客户端向开发者服务器请求时带上,便于给后者校验请求合法性。
App({
onLaunch() {
qq.setBackgroundFetchToken({
token: "xxx"
});
}
});
3. QQ 客户端定期拉取数据
QQ 客户端会在一定的网络条件下,每隔 12 小时(以上一次成功更新的时间为准)向配置的数据下载地址发起一个 HTTP GET 请求,其中包含的 query 参数如下,数据获取到后会将整个 HTTP body 缓存到本地。
属性 | 类型 | 说明 |
---|---|---|
appid | String | 小程序标识 |
token | String | 前面设置的 TOKEN |
timestamp | Number | 时间戳,微信客户端发起请求的时间 |
query 参数会使用 urlencode 处理
开发者服务器接口返回的数据类型应为字符串,且大小应不超过 256KB,否则将无法缓存数据
- 读取数据 用户启动小程序时,调用 qq.getBackgroundFetchData() 获取已缓存到本地的数据。 示例:
App({
onLaunch() {
qq.getBackgroundFetchData({
fetchType: "periodic",
success(res) {
console.log(res.fetchedData); // 缓存数据
console.log(res.timeStamp); // 客户端拿到缓存数据的时间戳
}
});
}
});
5. 调试方法
暂不支持,开发者工具后续版本将进行更新