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