您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何實現小程序頁面級版本控制,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
在此之前我們先了解下小程序的運行機制。
小程序啟動會有兩種情況,一種是「冷啟動」,一種是「熱啟動」。
「熱啟動」
假如用戶已經打開過某小程序,然后在一定時間內再次打開該小程序,此時無需重新啟動,只需將后臺態的小程序切換到前臺,這個過程就是熱啟動。
「冷啟動」
用戶首次打開或小程序被微信主動銷毀后再次打開的情況,此時小程序需要重新加載啟動,即冷啟動。
『 對于小程序版本更新的思考 』
小程序冷啟動時,如果發現有新版本,將會異步下載新版本的代碼包,并同時用客戶端本地的包進行啟動,即新版本的小程序需要等下一次冷啟動才會應用上。
在小程序的開發過程中,我們經常會遇到一種情況,當修復一個緊急bug或者上線一種新功能時,產品希望用戶打開小程序的時候就是最新版。
或許你想到了用wx.getUpdateManager這個API,在小程序啟動的時候監聽有無版本更新,并且能夠強制小程序重啟并使用新版本。
但是這會導致一個用戶體驗問題,每次有新版本包時都會提示用戶更新,對于需求迭代更新速度快的小程序特別不友好,非常打擾用戶。
轉轉是一個日活幾百萬的小程序,業務線分了好多條,每天都有可能會發布新版本甚至不止一個。迫切需要實現版本更新管理。
我們就想著可以通過接口獲取需要更新的版本信息,根據返回結果再判斷是否需要重啟使用新包。
鑒于轉轉有多條業務線,希望當用戶不進入某條需要更新的業務線時就不用強制更新,只想實現以頁面為粒度判斷是否需要更新。下圖是我們設計的思路:
但是這就涉及到需要RD幫我們存儲數據、提供接口獲取數據。當時快年底了RD資源很緊張,所以就想著不用RD,前端能不能自己做?
于是,云開發,正式登場......
『 云開發提供的能力:數據庫 』
云開發提供了一個JSON數據庫,讓我們可以在控制臺創建一個版本信息的集合,在里面插入需要更新的版本信息。
云函數讓我們能夠自己寫函數實現讀取數據庫的功能。每次請求時,我們只返回前三條記錄,3條記錄的版本都高于小程序自帶版本的話,說明用戶也很久沒打開過小程序了,直接提示用戶更新。
一開始我們的設計思路是每個頁面打開時都去調云函數判斷是否需要更新當前頁,轉轉的頁面打開次數每天都是千萬級別,當時還比較擔心云開發能否頂住壓力。
就這樣,不依賴RD,完美解決版本更新的問題,當然設計思路還有待改進,但云開發讓我們沒有了后顧之憂。
關于如何實現小程序頁面級版本控制就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。