微信小游戏(字节小游戏、QQ小游戏)如何实现强制更新版本
生活随笔
收集整理的這篇文章主要介紹了
微信小游戏(字节小游戏、QQ小游戏)如何实现强制更新版本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們都知道,微信小游戲是有離線緩存的機制,也就是說如果這臺手機之前玩過某個游戲,再打開游戲的時候是先加載啟動手機本地緩存住的代碼包,這個代碼包是舊的,之后才會在后臺向微信服務器下載最新的代碼包。
我們會遇到這樣的需求,微信小游戲上線后,新開發了一個功能或修復了一個重大Bug,想讓用戶打開游戲的時候就下載運行最新的代碼包,而不是運行舊的代碼包。
有沒有解決辦法呢?當然是有的!微信小游戲提供了一個 api wx.getUpdateManager() 來解決這個問題
核心方法:
UpdateManager.onCheckForUpdate(function callback)
監聽該事件后微信向后臺檢查更新結果完會回調callback方法,如果有更新的版本,回調參數里hasUpdate屬性為true。微信在小程序冷啟動時自動檢查更新,不需由開發者主動觸發。
UpdateManager.onUpdateReady(function callback)
監聽該事件后微信下載完新版的代碼包時會回調callback方法。客戶端主動觸發下載(無需開發者觸發),下載成功后回調
UpdateManager.applyUpdate()
在onUpdateReady下載完新代碼包后調用該方法強制小程序重啟并使用新版本。
下面上代碼:
if(window["wx"].getUpdateManager){const updateManager = window["wx"].getUpdateManager()updateManager.onCheckForUpdate(function (res) {// 請求完新版本信息的回調if(res.hasUpdate){//如果內存卡有存儲游戲相關的離線文件,在更新版本的時候需要清除,避免廢文件越來越多window["clearTempCache"] && window["clearTempCache"](); window["wx"].showToast({icon:"none", title:"有新版本了,正在下載中..", duration: 600000});//10分鐘}})updateManager.onUpdateFailed(function () {window["wx"].hideToast();window["wx"].showModal({content: '新版本下載失敗了,點擊確定重啟游戲',title: '更新提示',showCancel: false,success: function (res) {window["wx"].exitMiniProgram();}})})updateManager.onUpdateReady(function () {window["wx"].hideToast();window["wx"].showModal({content: '新版本已經準備好了,點擊確定重啟應用',title: '更新提示',showCancel: false,success: function (res) {if (res.confirm) {// 新的版本已經下載好,調用 applyUpdate 應用新版本并重啟updateManager.applyUpdate()}}})})}特別注意:
總結
以上是生活随笔為你收集整理的微信小游戏(字节小游戏、QQ小游戏)如何实现强制更新版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码神注释鉴赏,喜欢拿去用
- 下一篇: vue获取前一个页面路由地址