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

2020-07-02 16:56 更新

基礎(chǔ)庫(kù) 1.14.0 版本開始支持。

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

使用流程

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

登錄小程序管理后臺(tái),進(jìn)入設(shè)置 -> 開發(fā)設(shè)置 -> 數(shù)據(jù)預(yù)拉取,點(diǎn)擊啟用,填寫數(shù)據(jù)下載地址,只支持 HTTPS。

2. 設(shè)置 TOKEN

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

示例:

App({
  onLaunch() {
    qq.setBackgroundFetchToken({
      token: "xxx"
    });
  }
});

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

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

屬性 類型 必填 說明
appid String 小程序標(biāo)識(shí)
token String 前面設(shè)置的 TOKEN
code String 用戶登錄憑證,未設(shè)置 TOKEN 時(shí)由QQ側(cè)預(yù)生成,可在開發(fā)者后臺(tái)調(diào)用 auth.code2Session,換取 openid 等信息
timestamp Number 時(shí)間戳,QQ客戶端發(fā)起請(qǐng)求的時(shí)間
path String 打開小程序的路徑
query String 打開小程序的 query
scene Number 打開小程序的場(chǎng)景值

query 參數(shù)會(huì)使用 urlencode 處理 token 和 code 只會(huì)存在一個(gè),用于標(biāo)識(shí)用戶身份 開發(fā)者服務(wù)器接口返回的數(shù)據(jù)類型應(yīng)為字符串,且大小應(yīng)不超過 256KB,否則將無法緩存數(shù)據(jù)

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

用戶啟動(dòng)小程序時(shí),調(diào)用 qq.getBackgroundFetchData() 獲取已緩存到本地的數(shù)據(jù)。 示例:

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

5. 調(diào)試方法

暫不支持,開發(fā)者工具后續(xù)版本將進(jìn)行更新

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)