首页
/
每日頭條
/
科技
/
微信小程序怎麼關閉更新
微信小程序怎麼關閉更新
更新时间:2026-10-17 18:18:55

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
推荐阅读
小太陽取暖器價格 紅外反射式取暖器
小太陽取暖器價格 紅外反射式取暖器
據說在冬季的時候,取暖使用小太陽取暖器是比較健康的,并且還不傷害人們的身體,不過,很多人并不清楚小太陽取暖器價格是多少,所以,在平時的生活上,不少人都擔心小太陽取暖器價格是不是很高,不過,我們建議大家不要憂慮這一點,在平時的時候,購買小太陽取暖器價格很講究,我們就去看看下面的介紹吧。小太陽取暖器價格...
2026-10-17
高壓鍋和電壓力鍋性能PK
高壓鍋和電壓力鍋性能PK
高壓鍋和電壓力鍋性能PK高壓鍋和電壓力鍋的區别1、安全性高壓鍋沒有智能控制技術,比如溫度到一定程度不會自動停止加熱。電壓力鍋是采用内鍋與鍋蓋分離的浮動密封結構,當碰到壓力過大時能自動卸壓,在控制方面采用溫控與壓控雙重控制技術,這個是高壓鍋無法比拟的。2、方便快捷電壓力鍋能根據用戶所放食物的不同,不同...
2026-10-17
吹風機的妙用
吹風機的妙用
很多人理解的吹風機的用途,主要用于頭發的幹燥和定型,但也可供實驗室、理療室及工業生産、美工等方面作局部幹燥、加熱和理療之用。其實,吹風機仍有許多其他的妙用?【1】家庭擺飾用的人造花,一段時間後布滿灰塵又不得用清水清洗,可用吹風機小心吹拂,即可輕松完成。【2】洗完澡,霧氣充滿浴室,鏡面勢必模糊,若要吹...
2026-10-17
防雷插座有用嗎
防雷插座有用嗎
随着現代化的發展越來越快,人們的生活質量也是在不斷地提高,也正是因為這樣,而現在的雷電的天氣也是比較多的,而有些人比較害怕這些雷電危害到家裡的電器,而人們就會想到去防止被雷擊,而防雷插座就是其中的一種,而人們最想知道的是這種的防雷插座有用的嗎?而對于這種防雷插座,其實在社會上的品種也是多種多樣的,而...
2026-10-17
波輪洗衣機的選購技巧
波輪洗衣機的選購技巧
波輪洗衣機的選購技巧波輪洗衣機的選購技巧波輪的特點波輪的最大特點就是省時間、廢水,波輪由于都是使用上開門設計,優點是洗衣中途可以很方便的增減衣物,而缺點就是波輪上方的空間無法進行利用。波輪的電機分類在波輪洗衣機中,各種電機的複雜程度,相比滾筒要小的多,可以簡單地分為DD直驅電機和普通皮帶電機。歐美品...
2026-10-17
Copyright 2023-2026 - www.tftnews.com All Rights Reserved