微信小程序 數(shù)據(jù)預(yù)拉取

2022-05-11 15:41 更新

數(shù)據(jù)預(yù)拉取

預(yù)拉取能夠在小程序冷啟動的時候通過微信后臺提前向第三方服務(wù)器拉取業(yè)務(wù)數(shù)據(jù),當(dāng)代碼包加載完時可以更快地渲染頁面,減少用戶等待時間,從而提升小程序的打開速度 。

使用流程

1. 配置數(shù)據(jù)下載地址

登錄小程序 MP 管理后臺,進入設(shè)置 -> 開發(fā)設(shè)置 -> 數(shù)據(jù)預(yù)加載,點擊開啟,填寫數(shù)據(jù)下載地址,只支持 HTTPS 。

2. 設(shè)置 TOKEN

第一次啟動小程序時,調(diào)用 wx.setBackgroundFetchToken() 設(shè)置一個 TOKEN 字符串,可以跟用戶態(tài)相關(guān),會在后續(xù)微信客戶端向開發(fā)者服務(wù)器請求時帶上,便于給后者校驗請求合法性。

示例:

App({
  onLaunch() {
    wx.setBackgroundFetchToken({
      token: 'xxx'
    })
  }
})

3. 微信客戶端提前拉取數(shù)據(jù)

當(dāng)用戶打開小程序時,微信服務(wù)器將向開發(fā)者服務(wù)器(上面配置的數(shù)據(jù)下載地址)發(fā)起一個 HTTP GET 請求,其中包含的 query 參數(shù)如下,數(shù)據(jù)獲取到后會將整個 HTTP body 緩存到本地。

參數(shù) 類型 必填 說明
appid String 小程序標(biāo)識。
token String 前面設(shè)置的 TOKEN。
code String 用戶登錄憑證,未設(shè)置TOKEN時由微信側(cè)預(yù)生成,可在開發(fā)者后臺調(diào)用 auth.code2Session,換取 openid 等信息。
timestamp Number 時間戳,微信客戶端發(fā)起請求的時間
path String 打開小程序的路徑。
query String 打開小程序的query。
scene Number 打開小程序的場景值。
query 參數(shù)會使用 urlencode 處理
token和code只會存在一個,用于標(biāo)識用戶身份。
開發(fā)者服務(wù)器接口返回的數(shù)據(jù)類型應(yīng)為字符串,且大小應(yīng)不超過 256KB,否則將無法緩存數(shù)據(jù)

4. 讀取數(shù)據(jù)

用戶啟動小程序時,調(diào)用 wx.getBackgroundFetchData() 獲取已緩存到本地的數(shù)據(jù)。

示例:

App({
  onLaunch() {
    wx.getBackgroundFetchData({
      fetchType: 'pre',
      success(res) {
        console.log(res.fetchedData) // 緩存數(shù)據(jù)
        console.log(res.timeStamp) // 客戶端拿到緩存數(shù)據(jù)的時間戳
        console.log(res.path) // 頁面路徑
        console.log(res.query) // query 參數(shù)
        console.log(res.scene) // 場景值
      }
    })
  }
})

調(diào)試方法

為了方便調(diào)試數(shù)據(jù)預(yù)拉取,工具提供了下面的調(diào)試能力給到開發(fā)者。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號