アプレットを開発して新しいバージョンをリリースした後、ユーザーが新しいバージョンを体験したい場合は、使用リストからアプレットを削除し、再度検索して再度開くと、新しいバージョンが有効になります。しかし、アップデートの回数が増えると、この方法は非常に不親切でユーザーエクスペリエンスが低下するため、開発中にアプレットの自動アップデートの設定を考慮する必要があります。
まずアプレットの動作の仕組みを理解する必要がありますが、アプレットの起動はコールドスタートとホットスタートの2つに分けられます。
-
コールド スタート: ユーザーが初めてアプレットを開いた場合、またはアプレットが破棄された後にユーザーが再度開いた場合、アプレットを再ロードして開始する (コールド スタート) 必要があります。
-
ホットスタート: ユーザーがすでに小さなプログラムを開いていて、一定時間内にその小さなプログラムを再度開いた場合、この時点では小さなプログラムは破棄されませんが、このプロセスはバックグラウンド状態からフォアグラウンド状態に入ります。熱いスタート。
アップデートの仕組みを理解した上で
-
開始されていない場合に更新する: アプレットの履歴バージョンがユーザーのローカル領域に既に存在しており、現時点で開かれた時点では最新バージョンではないことを意味し、最悪の場合、ユーザーに送信されます。 24時間以内に。
-
起動時に更新: これはコールド スタートです。ユーザーがアプレットを一度も使用したことがないか、アプレットが破棄されてから開かれます。新しいバージョンを非同期的にダウンロードし、同時にローカル パッケージで開始します。新しいバージョンは、次回のコールド スタートまで適用されません。
上記では、アプレットの動作メカニズムと更新メカニズムを簡単に紹介しました。次のステップは、アプレットの自動更新を構成することです。app.jsに次のコードを追加します。
// 小程序自动更新
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
if (res.hasUpdate) {
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新的版本下载失败
wx.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
})
})
}
})
}
コンパイルモードの追加
アプレットが再コンパイルされ、バージョンの更新が求められます