QQ小游戲 周期性更新

2020-07-15 15:40 更新

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

周期性更新能夠在用戶未打開小程序的情況下,也能從服務(wù)器提前拉取數(shù)據(jù),當(dāng)用戶打開小程序時可以更快地渲染頁面,減少用戶等待時間,增強(qiáng)在弱網(wǎng)條件下的可用性。

使用流程

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

登錄小程序管理后臺,進(jìn)入設(shè)置 -> 開發(fā)設(shè)置 -\> 周期性更新,點擊啟用,填寫數(shù)據(jù)下載地址,只支持 HTTPS。

2. 設(shè)置 TOKEN

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

示例:

  1. App({
  2. onLaunch() {
  3. qq.setBackgroundFetchToken({
  4. token: "xxx"
  5. });
  6. }
  7. });

3. QQ 客戶端定期拉取數(shù)據(jù)

QQ 客戶端會在一定的網(wǎng)絡(luò)條件下,每隔 12 小時(以上一次成功更新的時間為準(zhǔn))向配置的數(shù)據(jù)下載地址發(fā)起一個 HTTP GET 請求,其中包含的 query 參數(shù)如下,數(shù)據(jù)獲取到后會將整個 HTTP body 緩存到本地。

屬性 類型 說明
appid String 小程序標(biāo)識
token String 前面設(shè)置的 TOKEN
timestamp Number 時間戳,微信客戶端發(fā)起請求的時間

query 參數(shù)會使用 urlencode 處理

開發(fā)者服務(wù)器接口返回的數(shù)據(jù)類型應(yīng)為字符串,且大小應(yīng)不超過 256KB,否則將無法緩存數(shù)據(jù)

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

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

示例:

  1. App({
  2. onLaunch() {
  3. qq.getBackgroundFetchData({
  4. fetchType: "periodic",
  5. success(res) {
  6. console.log(res.fetchedData); // 緩存數(shù)據(jù)
  7. console.log(res.timeStamp); // 客戶端拿到緩存數(shù)據(jù)的時間戳
  8. }
  9. });
  10. }
  11. });

5. 調(diào)試方法

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號