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

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

基础库 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 的 waring,可供开发者调试识别

© 2022 FinClip with ❤