小程序和钉钉发版后老版缓存的问题调研
小程序發(fā)版后老版緩存方式
1、 小程序運行機制
(1)小程序啟動
小程序啟動會有兩種情況,一種是冷啟動,一種是熱啟動。
熱啟動:假如用戶已經(jīng)打開過某小程序,然后在一定時間內(nèi)再次打開該小程序,此時無需重新啟動,只需將后臺態(tài)的小程序切換到前臺,這個過程就是熱啟動;
冷啟動:用戶首次打開或小程序被微信主動銷毀后再次打開的情況,此時小程序需要重新加載啟動,即冷啟動。
(2)小程序銷毀
需要注意的是:只有當(dāng)小程序進(jìn)入后臺一定時間,或者系統(tǒng)資源占用過高,才會被真正的銷毀。
A、當(dāng)小程序進(jìn)入后臺,客戶端會維持一段時間的運行狀態(tài),超過一定時間后(目前是5分鐘)小程序會被微信主動銷毀
B、當(dāng)小程序占用系統(tǒng)資源過高,可能會被系統(tǒng)銷毀或被微信客戶端主動回收。
2、UpdateManager
UpdateManager 對象,用來管理更新,可通過wx.getUpdateManager接口獲取實例。(從基礎(chǔ)庫1.9.90才開始支持,也就是微信版本為6.6.1及以上)
A、UpdateManager.applyUpdate()
強制小程序重啟并使用新版本。在小程序新版本下載完成后(即收到onUpdateReady回調(diào))調(diào)用。
B、UpdateManager.onCheckForUpdate(function callback)
監(jiān)聽向微信后臺請求檢查更新結(jié)果事件。微信在小程序冷啟動時自動檢查更新,不需由開發(fā)者主動觸發(fā)。
C、UpdateManager.onUpdateReady(function callback)
監(jiān)聽小程序有版本更新事件。客戶端主動觸發(fā)下載(無需開發(fā)者觸發(fā)),下載成功后回調(diào)
D、UpdateManager.onUpdateFailed(function callback)
監(jiān)聽小程序更新失敗事件。小程序有新版本,客戶端主動觸發(fā)下載(無需開發(fā)者觸發(fā)),下載失敗(可能是網(wǎng)絡(luò)原因等)后回調(diào)
代碼示例
App({
onLaunch: function(){
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 請求完新版本信息的回調(diào)
console.log(res.hasUpdate)
})
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已經(jīng)準(zhǔn)備好,是否重啟應(yīng)用?',
success: function (res) {
if (res.confirm) {
// 新的版本已經(jīng)下載好,調(diào)用 applyUpdate 應(yīng)用新版本并重啟
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新版本下載失敗
})
}
})
釘釘E應(yīng)用
經(jīng)過查詢資料后獲取到的信息:
1、釘釘小程序E應(yīng)用在發(fā)版時會有一個老版本的緩存,每次發(fā)版后直接打開E應(yīng)用,其實訪問的是上一個版本的緩存,這個緩存會在發(fā)版后10分鐘左右自動更新成最新版本,如果想要直接看到最新版本,可以退出釘釘?shù)卿涃~戶,并殺掉釘釘進(jìn)程,這樣再進(jìn)去后就是直接訪問的最新版本了.
文檔提示自己本地實驗:微信開發(fā)者工具上可以通過「編譯模式」下的「下次編譯模擬更新」開關(guān)來調(diào)試
我自己在本地根據(jù)上述的提示實驗過,當(dāng)下次編譯時,當(dāng)本地不是最新版本,會提示“新版本已經(jīng)準(zhǔn)備好,是否重啟應(yīng)用?”,點擊確定就觸發(fā)UpdateManager.applyUpdate()事件,強制小程序重啟。
總結(jié)
以上是生活随笔為你收集整理的小程序和钉钉发版后老版缓存的问题调研的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡一直用最低还款额会有什么影响?后果
- 下一篇: 我国成功发射一箭十六星 “吉林一号”70