欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序版本自動(dòng)更新的方法

 更新時(shí)間:2019年06月14日 14:52:10   作者:小小小魔仙  
這篇文章主要介紹了微信小程序版本自動(dòng)更新的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

公司的小程序項(xiàng)目上線, 后期還會(huì)有小型的版本迭代. 為了讓用戶能在我們進(jìn)行版本迭代后及時(shí)使用最新版本的功能. 做了以下優(yōu)化..

知識(shí)點(diǎn)1: 當(dāng)用戶點(diǎn)擊左上角關(guān)閉,或者按了設(shè)備Home 鍵離開(kāi)微信,小程序并沒(méi)有直接銷(xiāo)毀,而是進(jìn)入了后臺(tái);
當(dāng)再次進(jìn)入微信或再次打開(kāi)小程序,又會(huì)從后臺(tái)進(jìn)入前臺(tái),只有當(dāng)小程序進(jìn)入后臺(tái)一定時(shí)間,或者系統(tǒng)資源占用過(guò)高,才會(huì)被真正的銷(xiāo)毀。

知識(shí)點(diǎn)2: 小程序的啟動(dòng)分為"冷啟動(dòng)" 和 "熱啟動(dòng)".

熱啟動(dòng)是指: 小程序打開(kāi)后,在一段時(shí)間內(nèi)(目前:5分鐘)再次被打開(kāi),此時(shí)會(huì)將后臺(tái)的小程序切換到前臺(tái)。

冷啟動(dòng)是指: 小程序首次打開(kāi)或銷(xiāo)毀后再次被打開(kāi)

知識(shí)點(diǎn)3: 更新版本

冷啟動(dòng)時(shí), 如果發(fā)現(xiàn)有新版本,將會(huì)異步下載新版本的代碼包,并同時(shí)用客戶端本地的包進(jìn)行啟動(dòng),即新版本的小程序需要等下一次冷啟動(dòng)才會(huì)應(yīng)用上。

如果要馬上應(yīng)用最新版本,使用wx.getUpdateManager API 進(jìn)行處理。

代碼如下:

// 在app.js里寫(xiě)下以下代碼
 onLaunch () {
  if (wx.canIUse('getUpdateManager')) {
   const updateManager = wx.getUpdateManager()
   updateManager.onCheckForUpdate(function (res) {
    console.log('onCheckForUpdate====', res)
    // 請(qǐng)求完新版本信息的回調(diào)
    if (res.hasUpdate) {
     console.log('res.hasUpdate====')
     updateManager.onUpdateReady(function () {
      wx.showModal({
       title: '更新提示',
       content: '新版本已經(jīng)準(zhǔn)備好,是否重啟應(yīng)用?',
       success: function (res) {
        console.log('success====', res)
        // res: {errMsg: "showModal: ok", cancel: false, confirm: true}
        if (res.confirm) {
         // 新的版本已經(jīng)下載好,調(diào)用 applyUpdate 應(yīng)用新版本并重啟
         updateManager.applyUpdate()
        }
       }
      })
     })
     updateManager.onUpdateFailed(function () {
      // 新的版本下載失敗
      wx.showModal({
       title: '已經(jīng)有新版本了喲~',
       content: '新版本已經(jīng)上線啦~,請(qǐng)您刪除當(dāng)前小程序,重新搜索打開(kāi)喲~'
      })
     })
    }
   })
  }
 }

知識(shí)點(diǎn)4: 小程序重新初始化時(shí)會(huì)觸發(fā)onLaunch事件.  onLaunch事件會(huì)觸發(fā)在頁(yè)面onShow事件之前.獲取小程序更新版本可以寫(xiě)在onLaunch里.

知識(shí)點(diǎn)5:

在開(kāi)發(fā)和體驗(yàn)版無(wú)法測(cè)試版本更新

需要在開(kāi)發(fā)者工具里,編譯時(shí)選擇"模擬更新編譯"

(部分開(kāi)發(fā)者工具版本, 每次update編譯時(shí)都需要重新勾選此選項(xiàng))

點(diǎn)擊確定,重新編譯.

頁(yè)面會(huì)彈窗顯示:

點(diǎn)擊確認(rèn)后: 

控制臺(tái)顯示:

知識(shí)點(diǎn)6: 隨著小程序的不斷更新, 部分功能可能需要最新版的微信客戶端才能使用. 這時(shí)候可以彈窗提示用戶更新到最新版本微信

 if (wx.canIUse('getUpdateManager')) {
 ...
} else {
 // can't use getUpdateManager
 wx.showModal({
    title: '提示',
    content: '當(dāng)前微信版本過(guò)低,無(wú)法使用該功能,請(qǐng)升級(jí)到最新微信版本后重試。'
  })

完整版本:

 onLaunch () {
  if (wx.canIUse('getUpdateManager')) {
   const updateManager = wx.getUpdateManager()
   updateManager.onCheckForUpdate(function (res) {
    if (res.hasUpdate) {
     updateManager.onUpdateReady(function () {
      wx.showModal({
       title: '更新提示',
       content: '新版本已經(jīng)準(zhǔn)備好,是否重啟應(yīng)用?',
       success: function (res) {
        if (res.confirm) {
         updateManager.applyUpdate()
        }
       }
      })
     })
     updateManager.onUpdateFailed(function () {
      wx.showModal({
       title: '已經(jīng)有新版本了喲~',
       content: '新版本已經(jīng)上線啦~,請(qǐng)您刪除當(dāng)前小程序,重新搜索打開(kāi)喲~'
      })
     })
    }
   })
  } else {
   wx.showModal({
    title: '提示',
    content: '當(dāng)前微信版本過(guò)低,無(wú)法使用該功能,請(qǐng)升級(jí)到最新微信版本后重試。'
   })
  }
 }

知識(shí)點(diǎn)7: 如果在onLaunch里進(jìn)行請(qǐng)求, 這是異步請(qǐng)求. 如果對(duì)交互順序有要求, 如: 版本更新--重新獲取數(shù)據(jù)-- 用戶展示, 那么需要考慮在callback里進(jìn)行重獲數(shù)據(jù).

知識(shí)點(diǎn)8:小程序啟動(dòng)時(shí),正常是會(huì)熱更新,下載新版本的包,下一次啟動(dòng)就會(huì)使用新包。但發(fā)現(xiàn)有更新不成功的情況發(fā)生.
官方回答: 策略生效跟網(wǎng)絡(luò)環(huán)境以及發(fā)布時(shí)間等若干因素有關(guān),會(huì)盡可能讓小程序快地更新,但無(wú)法保證每次都熱更新成功。

知識(shí)點(diǎn)9:小程序的異步更新發(fā)生在冷啟動(dòng)過(guò)程. 官方不建議熱更新. 原因:

參考資料:

官方-強(qiáng)制更新

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

  • div當(dāng)滾動(dòng)到頁(yè)面頂部的時(shí)候固定在頂部實(shí)例代碼

    div當(dāng)滾動(dòng)到頁(yè)面頂部的時(shí)候固定在頂部實(shí)例代碼

    使用Javascript實(shí)現(xiàn)了滾動(dòng)頁(yè)面時(shí),DIV到達(dá)頂部時(shí)固定在頂部。在IE下效果有點(diǎn)閃,具體代碼如下,感興趣的朋友可以參考下哈
    2013-05-05
  • js清空表單數(shù)據(jù)的兩種方式(遍歷+reset)

    js清空表單數(shù)據(jù)的兩種方式(遍歷+reset)

    這篇文章主要介紹了js清空表單數(shù)據(jù)的兩種方式(遍歷+reset),需要的朋友可以參考下
    2014-07-07
  • 理解Javascript_12_執(zhí)行模型淺析

    理解Javascript_12_執(zhí)行模型淺析

    大家有沒(méi)有想過(guò),一段javascript腳本從載入瀏覽器到顯示執(zhí)行都經(jīng)過(guò)了哪些流程,其執(zhí)行次序又是如何。本篇博文將引出'javascript執(zhí)行模型'的概念,并帶領(lǐng)大家理解javascript在執(zhí)行時(shí)的處理機(jī)制。
    2010-10-10
  • 微信小程序?qū)崿F(xiàn)側(cè)邊導(dǎo)航欄

    微信小程序?qū)崿F(xiàn)側(cè)邊導(dǎo)航欄

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)側(cè)邊導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 使用p5.js實(shí)現(xiàn)動(dòng)態(tài)GIF圖片臨摹重現(xiàn)

    使用p5.js實(shí)現(xiàn)動(dòng)態(tài)GIF圖片臨摹重現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了使用p5.js實(shí)現(xiàn)動(dòng)態(tài)GIF圖片臨摹重現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • JS獲得多個(gè)同name 的input輸入框的值的實(shí)現(xiàn)方法

    JS獲得多個(gè)同name 的input輸入框的值的實(shí)現(xiàn)方法

    這篇文章主要介紹了基于JS代碼實(shí)現(xiàn)input密碼輸入框輸入密碼變黑點(diǎn)密文以及JS獲得多個(gè)同name 的input輸入框的值的實(shí)現(xiàn)方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-01-01
  • BootStrap實(shí)現(xiàn)帶關(guān)閉按鈕功能

    BootStrap實(shí)現(xiàn)帶關(guān)閉按鈕功能

    這篇文章主要介紹了BootStrap實(shí)現(xiàn)帶關(guān)閉按鈕功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • 最新評(píng)論