溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何實現(xiàn)小程序頁面級版本控制

發(fā)布時間:2021-11-24 15:18:49 來源:億速云 閱讀:241 作者:柒染 欄目:云計算

這篇文章將為大家詳細講解有關(guān)如何實現(xiàn)小程序頁面級版本控制,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

在此之前我們先了解下小程序的運行機制。

小程序啟動會有兩種情況,一種是「冷啟動」,一種是「熱啟動」。

「熱啟動」

假如用戶已經(jīng)打開過某小程序,然后在一定時間內(nèi)再次打開該小程序,此時無需重新啟動,只需將后臺態(tài)的小程序切換到前臺,這個過程就是熱啟動。

「冷啟動」

用戶首次打開或小程序被微信主動銷毀后再次打開的情況,此時小程序需要重新加載啟動,即冷啟動。

『 對于小程序版本更新的思考 』

小程序冷啟動時,如果發(fā)現(xiàn)有新版本,將會異步下載新版本的代碼包,并同時用客戶端本地的包進行啟動,即新版本的小程序需要等下一次冷啟動才會應(yīng)用上。

在小程序的開發(fā)過程中,我們經(jīng)常會遇到一種情況,當修復(fù)一個緊急bug或者上線一種新功能時,產(chǎn)品希望用戶打開小程序的時候就是最新版。

或許你想到了用wx.getUpdateManager這個API,在小程序啟動的時候監(jiān)聽有無版本更新,并且能夠強制小程序重啟并使用新版本。

但是這會導(dǎo)致一個用戶體驗問題,每次有新版本包時都會提示用戶更新,對于需求迭代更新速度快的小程序特別不友好,非常打擾用戶。

轉(zhuǎn)轉(zhuǎn)是一個日活幾百萬的小程序,業(yè)務(wù)線分了好多條,每天都有可能會發(fā)布新版本甚至不止一個。迫切需要實現(xiàn)版本更新管理。

我們就想著可以通過接口獲取需要更新的版本信息,根據(jù)返回結(jié)果再判斷是否需要重啟使用新包。

鑒于轉(zhuǎn)轉(zhuǎn)有多條業(yè)務(wù)線,希望當用戶不進入某條需要更新的業(yè)務(wù)線時就不用強制更新,只想實現(xiàn)以頁面為粒度判斷是否需要更新。下圖是我們設(shè)計的思路:

如何實現(xiàn)小程序頁面級版本控制

但是這就涉及到需要RD幫我們存儲數(shù)據(jù)、提供接口獲取數(shù)據(jù)。當時快年底了RD資源很緊張,所以就想著不用RD,前端能不能自己做?

于是,云開發(fā),正式登場......

『 云開發(fā)提供的能力:數(shù)據(jù)庫 』

云開發(fā)提供了一個JSON數(shù)據(jù)庫,讓我們可以在控制臺創(chuàng)建一個版本信息的集合,在里面插入需要更新的版本信息。

如何實現(xiàn)小程序頁面級版本控制

『 云開發(fā)提供的能力:云函數(shù) 』

云函數(shù)讓我們能夠自己寫函數(shù)實現(xiàn)讀取數(shù)據(jù)庫的功能。每次請求時,我們只返回前三條記錄,3條記錄的版本都高于小程序自帶版本的話,說明用戶也很久沒打開過小程序了,直接提示用戶更新。

如何實現(xiàn)小程序頁面級版本控制

一開始我們的設(shè)計思路是每個頁面打開時都去調(diào)云函數(shù)判斷是否需要更新當前頁,轉(zhuǎn)轉(zhuǎn)的頁面打開次數(shù)每天都是千萬級別,當時還比較擔心云開發(fā)能否頂住壓力。

就這樣,不依賴RD,完美解決版本更新的問題,當然設(shè)計思路還有待改進,但云開發(fā)讓我們沒有了后顧之憂。

關(guān)于如何實現(xiàn)小程序頁面級版本控制就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI