FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# 数据预拉取和周期性更新

基础库 3.2.1 起支持,SDK 2.43.1 起支持,开元Studio 2.0.18 起支持

预拉取能够在小程序冷启动的时候通过 SDK 提前向开发者的第三方服务器拉取业务数据,当代码包加载完时可以更快地渲染页面,减少用户等待时间,从而提升小程序的打开速度,提升体验。

本功能的产品操作说明请点击这里

# 使用流程

# 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) // 场景值
      }
    })
  }
})

# 调试方法

开元Studio 需升级到支持的版本 2.0.18

1、小程序详情中会有【数据预拉取】的勾选项,勾上后重新编译小程序时会触发【数据预拉取】的请求

2、顶部帮助栏,会有【拉取周期性数据】的选项,点选后触发【拉取周期性数据】的请求

注意

若未在后台配置请求 URL,触发请求时日志栏会出现未配置 URL 的 warning,可供开发者调试识别