アップデートの挙動
このプラグインのインストールステップと全マークダウンガイドを含むセットアップ用の質問をコピーする
あなたのCapgoアプリにアップデートをリリースしたとき、ユーザーがそのアップデートを受け取るのをできるだけ早くしたいと思います。しかし、ダウンロードやアプリの再起動を強制してユーザーの体験を中断したくないこともあります。
Capgoのアップデート動作は、ユーザーの体験を最小限に抑えながらもアップデートをできるだけ早く提供するバランスを取ったものです。
デフォルトアップデートフロー
デフォルトアップデートフローデフォルトでは、Capgoはアプリのアップデートを次のように処理します。
-
アプリが前景に移動したとき、Capgo プラグインは新しいアップデートが利用可能かどうかを確認します。アプリが開いている間、再帰的なタイマーを制御することで(デフォルト10分)、再度確認します。
periodCheckDelayアップデートが見つかった場合、ユーザーが現在のアプリのバージョンを使用している間、バックグラウンドでダウンロードされます。 -
(デフォルト10分)
-
ダウンロードが完了したら、Capgo はアプリをバックグラウンドに移動するユーザーを待機します。
-
ユーザーがアプリを次にフォアグラウンドに移動すると、最新バージョンを実行することになります。
このフローにより、ユーザーは常に最新バージョンのアプリを実行し、更新のポップアップやダウンロードの待機を強制されることなく、いつでもアプリを起動できます。
なぜこのアプローチを採用するのか?
セクション "なぜこのアプローチを採用するのか?"バックグラウンドまたはキルイベントで更新を適用することは、ユーザー体験にいくつかの重要な利点をもたらします:
-
ユーザーは更新のポップアップやダウンロードの待機に中断されず、セッションの途中でダウンロードを強制されることなく、更新を適用できます。
-
更新はセッションの間隔で自動的に適用され、起動時にアプリの体験が常に新鮮です。
-
頻繁にアップデートを配信することができます。アクティブなユーザーに影響を与える心配はありません。
主な欠点は、ユーザーがアプリをバックグラウンドにし、すぐにアプリを再開すると、更新が適用された間に保存されていない状態が失われる可能性があることです。
対策として、以下のことをお勧めします。
-
アプリが再開されたときに状態を優雅に復元するように、状態を頻繁に保存すること。
-
アプリの状態の大部分を変更する頻度の高いアップデートを避けること。
-
敏感なフローに対して、更新の動作をカスタマイズすること (以下を参照)。
更新の適用時期をカスタマイズする
「更新の適用時期をカスタマイズする」ある場合、更新が適用される時期をより制御できるようにしたい場合があります。たとえば、ユーザーが進行中のフローを完了するまでの更新を保証したい、またはアプリの更新をサーバーサイドの変更と調整したい。
Capgoは、更新がインストールされる前に満たす必要がある条件を指定できる関数を提供します。 setDelay コピー
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({ delayConditions: [ { kind: 'date', value: '2023-06-01T00:00:00.000Z', }, { kind: 'background', value: '60000', }, ],});2023年6月1日以降、60秒以上アプリがバックグラウンドで実行されている場合にのみアップデートをインストールする例です。
利用可能な遅延条件は次のとおりです。
date:特定の日時以降にアップデートを適用するまで待つ。background:アプリがバックグラウンドで実行されている場合に、最低時間を待ってからアップデートを適用する。nativeVersion:最低バージョンのネイティブバイナリがインストールされるまでアップデートを適用するまで待つ。kill:アプリの次の終了イベントまでアップデートを適用するまで待つ。
これらの条件を組み合わせて、どの時点でアップデートがインストールされるかを厳密に制御できます。
即時アップデート
アプリケーションへの即時更新重要な更新や、状態が非常に単純なアプリの場合、ダウンロードが完了した直後に更新を適用したい場合は、バックグラウンドまたは終了イベントを待たずに適用することができます。Capgoは、 autoUpdate policy in your Capacitor config.
autoUpdate を使用して、フル バンドル アップロードを強制します。 capacitor.config.ts file, not in JavaScript code. It supports these values:
falseまたは'off': 自動更新の確認を無効にしますtrueまたは'atBackground': 起動時に自動で確認し、ダウンロードし、バックグラウンド時に更新を適用します (デフォルト)'atInstall': インストール後に直ちに適用します。そうでない場合は"atBackground":'onLaunch': アプリが起動状態から死んだ状態に戻されたときに直ちに適用します。その後は"atBackground":'always': フォアグラウンドに移行するたびに確認し、更新が利用可能な場合は直ちに適用します'onlyDownload': 自動で確認し、ダウンロードし、更新が利用可能な場合にのみ通知し、次のバンドルを設定したり、自動で更新を適用したりしませんupdateAvailable: 自動ビルドのテストにLive Updatesを使用しない
Live Updatesのテスト
「ライブ更新なしでネイティブビルドをテストする」See ネイティブビルドのライブ更新なし native-version、チャンネルポリシー、CI構成のセーフガードについては、
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' for updates only on app install/update autoSplashscreen: true, keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, // Required for instant apply with autoSplashscreen }, },};
export default config;、__CAPGO_KEEP_0__ はアプリが前景に移ったときに毎回チェックし、ダウンロードが完了したときに即座に更新を適用します。ユーザーがアプリを使用している場合でも、更新は即座に適用されます。 autoUpdate: 'always'Capgo の間隔は periodCheckDelay アプリが開いている間でも、即時適用の動作を引き起こすことができます。
注意してくださいが autoUpdate is a native configuration, instant apply modes require some additional handling in your JavaScript code.
自動ダウンロードのみ
セクション「自動ダウンロードのみ」自動ダウンロードと更新の確認を行うように Capgo を設定したい場合は、 autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};このモードでは、プラグインは updateAvailable バンドルがダウンロードされた後 CapacitorUpdater.set() アプリは、更新の表示を決定するときに
自動スプラッシュスクリーン処理
セクション「自動スプラッシュスクリーン処理」即時適用モード ("atInstall", "onLaunch", "always") は autoSplashscreen と @capacitor/splash-screen バージョン 7.6.0 から利用可能です。プラグインをインストールし、スプラッシュスクリーンを表示し続けます。Capgo がスプラッシュスクリーンを非表示にすると:
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};表示される autoSplashscreen は有効です:
- プラグインは自動的にアップデートが適用されたときにスプラッシュスクリーンを非表示にします
- プラグインはアップデートが必要ないときに自動的にスプラッシュスクリーンを非表示にします
- アップデートが必要ない場合にスプラッシュスクリーンが非表示になるまで手動でリスンする必要はありません
appReadyイベントやをリスンする必要はありませんSplashScreen.hide()
を呼び出す必要はありません
スプラッシュが非表示になった後に行う追加の作業タイトル: スプラッシュが非表示になった後に行う追加の作業 autoSplashscreen: trueを保持します appReady アップデートが完了したときに追加のロジックが必要な場合にリスンする必要があります autoSplashscreen スキップしないでください
import { CapacitorUpdater } from '@capgo/capacitor-updater';
CapacitorUpdater.addListener('appReady', () => { // Update is applied. autoSplashscreen already hid the splash.});
CapacitorUpdater.notifyAppReady();The appReady イベントは、アプリが初期化と、適用中の更新を適用した後、1度だけ発生します。
Set keepUrlPathAfterReload を true インスタント適用モードを使用する場合に設定します。このモードは、アプリが更新のために再読み込みされたときに、現在のURLパスを保持します。
インスタント適用モードを使用すると、重要なバグ修正またはセキュリティパッチを提供できますが、次のようなトレードオフがあります:
- 更新が適用される際にユーザーが短時間のフリッカーまたはローディング状態を経験する可能性があります。
@capacitor/splash-screen更新が適用されない場合、またはautoSplashscreenが有効になっていない場合。 - 更新がアプリの状態またはUIを変更した場合、ユーザーはセッションの途中で大きな変化を経験する可能性があります。
- が設定されていない場合、ユーザーのアプリ内位置が失われる可能性があります。
keepUrlPathAfterReload__CAPGO_KEEP_0__ - 保存と復元を適切に管理する必要があります。
即時適用を有効にすると、以下のことをお勧めします。
- アップロード
npx @capgo/cli@latest bundle upload --deltaダウンロードがユーザー体験に影響を与えないようにするため - インストール
@capacitor/splash-screen設定autoSplashscreen: truewithlaunchAutoHide: false. - 位置を保存する
keepUrlPathAfterReload必要に応じてアプリの状態を保存して復元するtrueアプリの更新動作を徹底的にテストして、不快な移行、ユーザープロセスの失敗、位置の混乱を防ぎます。 - Saving and restoring the app state as needed to avoid losing user progress.
- Thoroughly testing your app’s update behavior to ensure there are no jarring transitions, lost state, or disorienting location changes.
In most cases, the default update behavior provides the best balance of delivering updates quickly and minimizing disruption. But for apps with specific needs, Capgo provides the flexibility to customize when and how updates are applied.
Live Updateの更新挙動から続きます。
Section titled “Live Updateの更新挙動から続きます。”あなたが利用している Live Updateの更新挙動 Live Updateの更新挙動を使用して、ライブ更新の配信計画を立てる場合、__CAPGO_KEEP_0__ Live Updatesと接続します。 Capgo Live Updates for the product workflow in Capgo Live Updates, __CAPGO_KEEP_0__ Live Updatesの製品ワークフローに 概要 概要の実装詳細 機能 アップデートの種類 アップデートの種類の実装詳細については はじめに はじめにの実装詳細については