# 数据预拉取和周期性更新
基础库 3.2.1 起支持,SDK 2.43.1 起支持,FinClip Studio 2.0.18 起支持
预拉取能够在小程序冷启动的时候通过 SDK 提前向开发者的第三方服务器拉取业务数据,当代码包加载完时可以更快地渲染页面,减少用户等待时间,从而提升小程序的打开速度,提升体验。
本功能的产品操作说明请点击这里 (opens new window)
# 使用流程
# 1. 管理后台配置请求 URL
在管理后台配置,入口为【我的小程序】-【详情】-【其他】,开启数据周期性更新或数据预拉取并填写相关 URL。
# 2. 小程序设置 token
第一次启动小程序时,可调用 wx.setBackgroundFetchToken() 设置 token 字符串,改 token 会在后续 SDK 向开发者服务器请求时带上,于用给服务器校验请求合法性。
App({
onLaunch() {
ft.setBackgroundFetchToken({
token: 'some token'
})
}
})
# 3. 启动小程序
在有配置数据周期性更新或数据预拉取的 URL 情况下,打开小程序时,SDK 会向配置的 URL 发起一个 HTTP GET 请求,其中包含的 query 参数如下,数据获取到后会将整个 HTTP body 缓存到本地。
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
appId | string | 是 | 小程序标识 |
token | string | 否 | setBackgroundFetchToken 设置的 token |
timeStamp | number | 是 | 客户端发起请求的时间戳,单位 ms |
path | string | 否 | 小程序页面路径 |
query | string | 否 | 传给页面的 query 参数 |
scene | number | 否 | 进入小程序的场景值 |
customMiniprogramVersion | number | 否 | 小程序版本号,在开发工具上固定是 devtool |
# 4. 在小程序中读取数据
App({
onLaunch() {
ft.onBackgroundFetchData(function (res) {
console.log(res.fetchType)
console.log(res.fetchedData)
console.log(res.timeStamp)
console.log(res.path)
console.log(res.query)
console.log(res.scene)
})
ft.getBackgroundFetchData({
fetchType: 'pre',
success(res) {
console.log(res.fetchedData) // 缓存数据
console.log(res.timeStamp) // 客户端拿到缓存数据的时间戳
console.log(res.path) // 页面路径
console.log(res.query) // query 参数
console.log(res.scene) // 场景值
}
})
}
})
# 调试方法
FinClip Studio 需升级到支持的版本 2.0.18
1、小程序详情中会有【数据预拉取】的勾选项,勾上后重新编译小程序时会触发【数据预拉取】的请求
2、顶部帮助栏,会有【拉取周期性数据】的选项,点选后触发【拉取周期性数据】的请求
注意
若未在后台配置请求 URL,触发请求时日志栏会出现未配置 URL 的 warning,可供开发者调试识别