通过云开发调用数据预拉取
其实就是调用云函数的过程,本人使用时间不长,也欢迎各位大佬们分享一下在使用过程中遇到的问题呀~
向云函数数据预拉取使用流程
1. 创建云函数
创建云函数,并在开发者工具中上传部署云函数。
2. 配置数据下载函数
登录小程序 MP 管理后台,在左侧边栏进入开发->开发管理 -> 开发设置 -> 数据预拉取,点击开启,选择数据来源“云开发”,选择环境ID,选择第一步中创建的云函数,会直接调用该函数下的index.js
入口文件。
3. 设置TOKEN
第一次启动小程序时,调用 wx.setBackgroundFetchToken() 设置一个 TOKEN 字符串,可以跟用户态相关,会在后续微信客户端向云函数请求时带上,便于给后者校验请求合法性。
示例:
App({
onLaunch() {
wx.setBackgroundFetchToken({
token: 'xxx'
})
}
})
4. 微信客户端提前拉取数据
当用户打开小程序时,微信服务器将向云函数发送请求,客户端请求参数如下,数据获取到后会将整个云函数返回的字符串缓存到本地。
客户端请求示例:
"event":{
"clientipv4":"xxx",
"clientipv6":"xxx",
"path":"pages/index/index",
"query":"",
"scene":1001,
"token":"xxx",
"userInfo":{
"appId":"wx1e174f3...",
"openId":"oCTCE4ns8r..."
}
}
客户端向云函数传递的event参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
appid | String | 是 | 小程序标识。 |
openId | String | 是 | 普通用户的标识,对当前公众号唯一。 |
token | String | 否 | 前面设置的 TOKEN。 |
path | String | 否 | 打开小程序的路径。 |
query | String | 否 | 打开小程序的query。 |
scene | Number | 否 | 打开小程序的场景值。 |
5. 读取数据及调试
读取数据及调试同向开发者服务器预拉取数据,调试时注意先确保云函数全部上传更新后再调试。
在云函数中读取数据
在调用云函数时传入的数据在event中进行调用
云函数示例:
// 云函数入口函数
exports.main = async (event, context) => {
let token = event.token
let query = event.query
return {
myToken: "myToken:"+token,
myQuery: "myQuery:"+query
}
}