通过云开发调用数据预拉取
发布于 2 年前 作者 oxiao 210 次浏览 来自 分享

通过云开发调用数据预拉取

其实就是调用云函数的过程,本人使用时间不长,也欢迎各位大佬们分享一下在使用过程中遇到的问题呀~

向云函数数据预拉取使用流程

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
    }
}
回到顶部