首页
/
每日頭條
/
科技
/
微信小程序怎麼關閉更新
微信小程序怎麼關閉更新
更新时间:2025-02-03 14:18:19

1. 如圖,當小程序發布新的版本後,用戶如果之前訪問過該小程序,通過已打開的小程序進入(未手動删除),則會彈出這個提示,提醒用戶更新新的版本。用戶點擊确定就可以自動重啟更新,點擊取消則關閉彈窗,不再更新。

微信小程序怎麼關閉更新(微信小程序發布新版本後使用時自動提示用戶更新或自動更新的方法)1

const updateManager = wx.getUpdateManager()

updateManager.onCheckForUpdate(function (res) {

// 請求完新版本信息的回調

console.log(res.hasUpdate)

})

updateManager.onUpdateReady(function () {

wx.showModal({

title: '更新提示',

content: '新版本已經準備好,是否重啟應用?',

success(res) {

if (res.confirm) {

// 新的版本已經下載好,調用 applyUpdate 應用新版本并重啟

updateManager.applyUpdate()

}

}

})

})

updateManager.onUpdateFailed(function () {

// 新版本下載失敗

})

2. 官方提供的demo中,隻有最基本的更新提示,并未做異常處理。而且官方也說了這個功能基礎庫 1.9.90 開始支持,低版本需做兼容處理,那麼就需要對着端代碼進行改進了。

另一方面,如果當前版本更新有重大調整,一定需要用戶更新,那麼可以在用戶點擊取消的回調中給出提示,并重新進入版本提示流程。如下圖,在上邊的更新提示中,用戶點擊取消,則彈出下面提示彈窗,用戶點擊确定,則更新版本,點擊取消,則重新調用上邊的更新提示。總之,用戶隻有更新了,才能正常訪問小程序(如非必須,建議慎用)。

微信小程序怎麼關閉更新(微信小程序發布新版本後使用時自動提示用戶更新或自動更新的方法)2

App({

onLaunch: function(options) {

this.autoUpdate()

},

autoUpdate:function(){

console.log(new Date())

var self=this

// 獲取小程序更新機制兼容

if (wx.canIUse('getUpdateManager')) {

const updateManager = wx.getUpdateManager()

//1. 檢查小程序是否有新版本發布

updateManager.onCheckForUpdate(function (res) {

// 請求完新版本信息的回調

if (res.hasUpdate) {

//2. 小程序有新版本,則靜默下載新版本,做好更新準備

updateManager.onUpdateReady(function () {

console.log(new Date())

wx.showModal({

title: '更新提示',

content: '新版本已經準備好,是否重啟應用?',

success: function (res) {

if (res.confirm) {

//3. 新的版本已經下載好,調用 applyUpdate 應用新版本并重啟

updateManager.applyUpdate()

} else if (res.cancel) {

//如果需要強制更新,則給出二次彈窗,如果不需要,則這裡的代碼都可以删掉了

wx.showModal({

title: '溫馨提示~',

content: '本次版本更新涉及到新的功能添加,舊版本無法正常訪問的哦~',

success: function (res) {

self.autoUpdate()

return;

//第二次提示後,強制更新

if (res.confirm) {

// 新的版本已經下載好,調用 applyUpdate 應用新版本并重啟

updateManager.applyUpdate()

} else if (res.cancel) {

//重新回到版本更新提示

self.autoUpdate()

}

}

})

}

}

})

})

updateManager.onUpdateFailed(function () {

// 新的版本下載失敗

wx.showModal({

title: '已經有新版本了喲~',

content: '新版本已經上線啦~,請您删除當前小程序,重新搜索打開喲~',

})

})

}

})

} else {

// 如果希望用戶在最新版本的客戶端上體驗您的小程序,可以這樣子提示

wx.showModal({

title: '提示',

content: '當前微信版本過低,無法使用該功能,請升級到最新微信版本後重試。'

})

}

}

})

3. 更新版本的模拟測試:

微信開發者工具上可以通過「編譯模式」下的「下次編譯模拟更新」開關來調試;

小程序開發版/體驗版沒有「版本」概念,所以無法在開發版/體驗版上測試更版本更新情況;

對于開發者工具,可以這樣驗證測試:

點擊編譯模式設置下拉列表,然後點擊“添加編譯模式”,在自定義編譯條件彈窗界面,點擊下次編譯時模拟更新,然後點擊确定,重新編譯就OK了。

微信小程序怎麼關閉更新(微信小程序發布新版本後使用時自動提示用戶更新或自動更新的方法)3

微信小程序怎麼關閉更新(微信小程序發布新版本後使用時自動提示用戶更新或自動更新的方法)4

需要注意的是,這種方式模拟更新一次之後就失效了,後邊再測試仍需要對這種編譯模式進行重新設置才可以。

4. 在開發者工具上測試驗證的時候,更新提示彈窗在小程序界面加載出來五六秒之後才彈出來,這是由于小程序在檢測到有新版本之後,調用 UpdateManager.onUpdateReady(function callback) 進行版本更新監聽,此時客戶端主動觸發下載(無需開發者觸發),下載成功後回調。也就是說我們上邊的更新提示彈窗是在小程序檢測到新版本并完成新版本下載之後彈出的,所以就有了這幾秒的時間差。這樣的話就很有必要進行再次改善了,至少應該在小程序編譯時檢測到有新版本就應該先給出更新提示,至于新版本下載的準備工作,可以在用戶點擊确認按鈕之後進行,代碼改造如下:

App({

onLaunch: function(options) {

this.autoUpdate()

},

autoUpdate: function() {

var self = this

// 獲取小程序更新機制兼容

if (wx.canIUse('getUpdateManager')) {

const updateManager = wx.getUpdateManager()

//1. 檢查小程序是否有新版本發布

updateManager.onCheckForUpdate(function(res) {

// 請求完新版本信息的回調

if (res.hasUpdate) {

//檢測到新版本,需要更新,給出提示

wx.showModal({

title: '更新提示',

content: '檢測到新版本,是否下載新版本并重啟小程序?',

success: function(res) {

if (res.confirm) {

//2. 用戶确定下載更新小程序,小程序下載及更新靜默進行

self.downLoadAndUpdate(updateManager)

} else if (res.cancel) {

//用戶點擊取消按鈕的處理,如果需要強制更新,則給出二次彈窗,如果不需要,則這裡的代碼都可以删掉了

wx.showModal({

title: '溫馨提示~',

content: '本次版本更新涉及到新的功能添加,舊版本無法正常訪問的哦~',

showCancel:false,//隐藏取消按鈕

confirmText:"确定更新",//隻保留确定更新按鈕

success: function(res) {

if (res.confirm) {

//下載新版本,并重新應用

self.downLoadAndUpdate(updateManager)

}

}

})

}

}

})

}

})

} else {

// 如果希望用戶在最新版本的客戶端上體驗您的小程序,可以這樣子提示

wx.showModal({

title: '提示',

content: '當前微信版本過低,無法使用該功能,請升級到最新微信版本後重試。'

})

}

},

/**

* 下載小程序新版本并重啟應用

*/

downLoadAndUpdate: function (updateManager){

var self=this

wx.showLoading();

//靜默下載更新小程序新版本

updateManager.onUpdateReady(function () {

wx.hideLoading()

//新的版本已經下載好,調用 applyUpdate 應用新版本并重啟

updateManager.applyUpdate()

})

updateManager.onUpdateFailed(function () {

// 新的版本下載失敗

wx.showModal({

title: '已經有新版本了喲~',

content: '新版本已經上線啦~,請您删除當前小程序,重新搜索打開喲~',

})

})

}

})

如上,在檢測到小程序有新版本之後,就給出彈窗提示用戶下載新版并重啟小程序,用戶點擊确定按鈕後進行小程序新版本的下載和更新。也為了調用方便,将新版本下載及小程序的重啟應用單獨封裝起來。

這樣,從小程序加載到彈出版本更新彈窗隻需要耗費調用新版本檢測API并返回結果的時間(開發者工具測試有2~3秒),雖說還是有一點延遲,但目前也隻能這樣了。

5.總結:

綜上,無論如何,使用小程序版本更新檢測功能都是需要一定時間的(一兩秒的時間已經不算短了哈),如果在檢測這一兩秒中内用戶進行了操作,那麼更新提示彈窗則會打斷用戶的操作。但畢竟不是頻繁更新版本,所以這方面還是可以接受的。

另外,下載新的版本包的時候建議loading,這樣用戶就知道是在下載,然後下載完成自動重啟,這樣整個流程就順暢多了。

梳理了下,整了份思維導圖,可以輔助理解:

微信小程序怎麼關閉更新(微信小程序發布新版本後使用時自動提示用戶更新或自動更新的方法)5

6.其他注意事項:

基礎庫最低版本設置:

如果不想做API支持判斷,那麼可以給小程序設置最低版本支持。

打開小程序管理後台-設置-基礎庫最低版本設置,根據現有小程序的訪問情況或者小程序官方提供的數據,設置一個比較大衆化的基礎庫版本就好了,這樣就能進了盡量減少API兼容性判斷,也能促使用戶更新微信版本,以支持小程序正常運行,體驗小程序一些高級功能。

微信小程序怎麼關閉更新(微信小程序發布新版本後使用時自動提示用戶更新或自動更新的方法)6

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
得物從哪裡發貨
得物從哪裡發貨
演示機型:Iphone12&&華為P40&&小米11系統版本:iOS14.4&&EMUI11&&MIUI12.0.7APP版本:得物4.70.1得物作為一個潮品鑒定平台,本身不賣東西,平台中的商品都由第三方商家出貨,發給得物官方鑒定後,再轉寄給買家。所以得物從哪裡發貨取決于商家發貨地和渠道,而不在于得物app。此方法适用于小米、蘋果、華為手機。得物:得物App是上海識裝信息科技有限公司旗下新一代潮
2025-02-03
10850k和10900k區别
10850k和10900k區别
以華為MateBookX、win10為例。主要區别在于:頻率差異、性能不同、成績不同。1、頻率的差異:i9-10900K基礎頻率為3.7GHz,單核最大頻率為5.3GHz,而i9-10850K基礎頻率為3.6GHz,單核最大頻率為5.2GHz,加速頻率10900K為5.3GHz;10850K為5.2GHz。2、性能測試不同:在CINEBENCHR20版本渲染測試中,i9-10900K相比i9-10
2025-02-03
ix25鑰匙怎麼換電池
ix25鑰匙怎麼換電池
1、首先用改錐将遙控器蓋拆下,輕輕去下鑰匙齒片。2、将螺絲刀插到箭頭1所指的孔内,按圖示位置順時針轉動螺絲刀,将遙控器兩部分完全分離。3、拆開後,拿下電池,拆開電路闆。4、最後更換上新的電池,按照原來拆卸的方法的反方向安裝上就OK了。
2025-02-03
怎麼分欄排版
怎麼分欄排版
演示機型:華為MateBookX系統版本:win10APP版本:word20201、首先打開word,并打開需要排版的文本。2、接着在上面找到“布局”的選項面闆,點擊進去。3、在下面的功能選項裡,可以看“欄”的字眼。4、如果需要分成兩欄,則下拉“欄”,然後選擇兩欄即可。排版:排版指的是将文字原稿依照設計要求組成規定版式的工藝。
2025-02-03
筆記本電腦升級配置可以換哪些配件
筆記本電腦升級配置可以換哪些配件
1、更換内存,内存一般都是插在卡槽中的,比如原筆記本是1條4G内存條,可以購買同品牌的4G内存條插入插槽形成雙通道,這樣兼容性最好。2、更換固态硬盤,如果筆記本沒有固态硬盤,可以在普通硬盤前加上一個固态硬盤,并把固态硬盤做成C盤,一般128G的固态硬盤就可以,這樣可以把性能提高很多。3、更換顯卡,一部分筆記本電腦是焊在主闆上的無法更換,更換時要考慮适配性,略有風險。4、更換CPU,CPU一般是不建
2025-02-03
Copyright 2023-2025 - www.tftnews.com All Rights Reserved