1. 配置数据下载地址
登录小程序 管理后台,进入开发管理 -> 开发设置 -> 数据预拉取->数据周期性更新,点击开启,填写数据下载地址,只支持 HTTPS
2. 设置 TOKEN
在app.js下面
App({
onLaunch() {
// 第1步:从storage中取出自定义登录态
const token = uni.getStorageSync('<token-key>')
// pinia 储存库写法
const token = useUserStore().token
// 第2步:将登录态同步给微信客户端
// 设置自定义登录态,在周期性拉取数据时带上,便于第三方服务器验证请求合法性
uni.setBackgroundFetchToken({
token
})
// 第3步:监听收到 backgroundFetch 数据事件。如果监听时请求已经完成,则事件不会触发。建议和 wx.getBackgroundFetchData 配合使用
uni.onBackgroundFetchData((res) => {
console.log(res.fetchedData) // 缓存数据
console.log(res.timeStamp) // 客户端拿到缓存数据的时间戳
})
// 第4步:拉取 backgroundFetch 客户端缓存数据。 当调用接口时,若当次请求未结束,会先返回本地的旧数据(之前打开小程序时请求的),如果本地没有旧数据会返回失败,而不会等待请求完成。
uni.getBackgroundFetchData({
fetchType: 'periodic',
success(res) {
const data = JSON.parse(res.fetchedData).data
appStore.changeConfigData(data)
console.log(res.fetchedData) // 缓存数据
console.log(res.timeStamp) // 客户端拿到缓存数据的时间戳
console.log(res.path) // 页面路径
console.log(res.query) // query 参数
console.log(res.scene) // 场景值
}
})
}
})