__CAPGO_KEEP_0__ - Live Updates for __CAPGO_KEEP_1__ Apps

__CAPGO_KEEP_0__の更新

あなたのCapgoアプリの更新をリリースしたとき、ユーザーがその更新をできるだけ早く受け取ることを願うかもしれませんが、ユーザー体験を中断しないため、ダウンロードを待つか、セッションの途中でアプリを再起動することを強制したくありません。

Capgoの更新動作は、更新を迅速に提供し、ユーザー体験を最小限に抑えるバランスを取るように設計されています。

デフォルトでは、Capgoはアプリの更新をどのように処理するかこちらに記載しています。

  1. アプリが前景に移動したとき、Capgo プラグインは新しい更新が利用可能かどうかを確認します。アプリが開いている間、再帰的なタイマーを制御することで、一定時間ごとに再度確認します。 periodCheckDelay (デフォルト10分)。

  2. 更新が見つかった場合、バックグラウンドでダウンロードされます。ユーザーは現在のアプリのバージョンを使用し続けます。

  3. ダウンロードが完了したら、Capgoはユーザーがアプリをバックグラウンドに移動するのを待ちます。

  4. ユーザーがアプリを再度前景に移動したとき、最新バージョンで実行されます。

このフローは、ユーザーが常に最新バージョンのアプリを実行していることを保証し、更新のポップアップやダウンロードの待機を伴わないようにする。

バックグラウンドまたは終了イベントで更新を適用することは、ユーザー体験にいくつかの重要な利点があります:

  • ユーザーはセッションの途中で更新のポップアップやダウンロードの待機に遭遇せずに済みます。

  • セッションの間の更新を適用することで、ユーザーは常に最新の状態でアプリを起動できます。

  • 頻繁に更新を配信することができますが、活発に使用しているユーザーに影響を与える心配はありません。

主な欠点は、ユーザーがアプリをバックグラウンドにし、すぐにアプリを再開すると、更新が適用された間に保存されていない状態が失われる可能性があることです。

To mitigate this, we recommend:

  • アプリが再開されたときに、状態を優雅に復元するために、頻繁に状態を保存すること。

  • アプリの状態の大きい部分を変更する頻度の高い更新を避けること。

  • 敏感なフローをカスタマイズするために、更新の動作をカスタマイズすること (以下を参照)。

いくつかの場合、更新が適用されるタイミングをより制御したい場合があります。たとえば、ユーザーが進行中のフローを完了するまでの更新を保留したい、またはサーバーサイドの変更とアプリの更新を調整したい。

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: __CAPGO_KEEP_0__ の更新を特定の日時以降に適用するまで待ちます。
  • background: アプリがバックグラウンドに移動した後、最低時間を待ってから __CAPGO_KEEP_0__ の更新を適用します。
  • nativeVersion: 最低バージョンのネイティブバイナリがインストールされるまで待ってから、__CAPGO_KEEP_0__ の更新を適用します。
  • kill: アプリが終了されるまで待ってから __CAPGO_KEEP_0__ の更新を適用します。

: __CAPGO_KEEP_0__ の更新を適用するタイミングを厳密に制御するために、これらの条件を組み合わせて使用できます。

Capgo autoUpdate Capacitor 設定内のポリシー

autoUpdate は、 capacitor.config.ts file, not in JavaScript code. It supports these values:

  • false サポートする値は次のとおりです: 'off'または
  • true :自動更新チェックを無効にする 'atBackground' または
  • 'atInstall'(デフォルト):各フロントチェック時には自動でチェックし、ダウンロードし、更新を適用する。アプリがバックグラウンドに移ると、次の更新を適用する。 "atBackground" :新規インストールまたはネイティブアプリストアの更新後のみ、即時適用する。そうでない場合は、
  • 'onLaunch': アプリが起動状態から死に状態に戻ったときにのみ、即座に適用します。最初のチェック後は、更新が利用可能な場合にのみ適用します。 "atBackground" : フォアグラウンドのトランジションごとにチェックし、更新が利用可能な場合に即座に適用します。
  • 'always': フォアグラウンドのトランジションごとにチェックし、更新が利用可能な場合に即座に適用します。
  • 'onlyDownload': 自動チェックとダウンロード、更新が利用可能な場合にのみ、 updateAvailable, and never set the next bundle or apply an update automatically

を発行し、自動で次のバンドルを設定または更新を適用することはありません。

Native ビルドのテスト

Native ビルドのテスト Native ビルドのテスト Native ビルドのテストの詳細

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 when using instant apply with autoSplashscreen
},
},
};
export default config;

アプリが前景に移動したときに __CAPGO_KEEP_0__ のチェックを実行し、ダウンロードが完了したときに即時適用を実行します。ユーザーがアプリを使用している場合でも、即時適用を実行します。 autoUpdate: 'always'アプリが開いている間隔で繰り返し実行される Capgo のチェックは、同じ即時適用の動作をトリガーできます。 periodCheckDelay 注意してください。

はネイティブの設定であるため、即時適用モードは、JavaScript の __CAPGO_KEEP_0__ で追加のハンドリングが必要です。 autoUpdate is a native configuration, instant apply modes require some additional handling in your JavaScript code.

自動更新の際にスプラッシュ画面が自動的に非表示になるのを防ぐため、

自動ダウンロードせずに適用しない

If you want Capgo to check and download updates automatically but never apply them automatically, use autoUpdate: 'onlyDownload':

const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: 'onlyDownload',
},
},
};

__CAPGO_KEEP_0__ が自動で更新を確認しダウンロードするように設定しますが、 updateAvailable 自動適用は行わないようにします。 CapacitorUpdater.set() コピー

Capgo の更新を確認するための更新ポップアップを表示するか、更新を適用するためのコールバックを発行します。アプリは、更新を適用するタイミングを決定できます。 autoSplashscreen __CAPGO_KEEP_0__ (バージョン 7.6.0 以降利用可能):

const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: 'always', // or 'atInstall'
autoSplashscreen: true, // Automatically hide splashscreen
keepUrlPathAfterReload: true,
},
SplashScreen: {
launchAutoHide: false,
},
},
};

__CAPGO_KEEP_2__ autoSplashscreen __CAPGO_KEEP_3__

  • __CAPGO_KEEP_4__
  • __CAPGO_KEEP_5__
  • __CAPGO_KEEP_6__ appReady __CAPGO_KEEP_7__ SplashScreen.hide()

__CAPGO_KEEP_8__

__CAPGO_KEEP_9__

__CAPGO_KEEP_10__ autoSplashscreen __CAPGO_KEEP_11__

import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => {
// Hide splash screen
SplashScreen.hide();
});
CapacitorUpdater.notifyAppReady();

The appReady アプリが初期化完了し、保留中の更新を適用した後、イベントは 1 回発生します。この時点で、アプリの UI を表示することが安全です。ユーザーは、最新のバージョンを表示するように保証されます。

イベントの処理に加えて、インスタント アプリケーション モードを使用する場合に、"configuration" オプションを""に設定することをお勧めします。この設定により、アプリが更新された後も、現在の URL パスが保持され、ユーザーがアプリ内で位置を維持し、混乱を減らすことができます。 appReady "event"を処理せずに"configuration"を設定せずにインスタント アプリケーション モードを使用すると、ユーザーは、更新されたアプリの古いバージョンを一時的に表示したり、初期ルートに戻されたり、更新が適用されたときにフリッカーが発生したりする可能性があります。 keepUrlPathAfterReload インスタント アプリケーション モードを使用すると、緊急のバグ修正またはセキュリティ パッチを配信することができますが、代償として、ユーザーがアプリの更新が適用されたときに一時的なフリッカーまたはローディング ステートを経験する可能性があります。 true ユーザーがアプリのスプラッシュスクリーンを適切に処理していない場合、更新が適用されたときに一時的なフリッカーまたはローディング ステートが発生する可能性があります。

__CAPGO_KEEP_1__ appReady __CAPGO_KEEP_2__ keepUrlPathAfterReload __CAPGO_KEEP_3__

__CAPGO_KEEP_4__

  • __CAPGO_KEEP_5__ autoSplashscreen または手動 appReady イベントハンドリング).
  • 更新がアプリの状態またはUIを変更した場合、ユーザーはセッションの途中で突然の変更を確認する可能性があります。
  • アプリの位置が失われる可能性があります。 keepUrlPathAfterReload アプリの位置が失われる可能性があります。
  • 保存と復元の状態を慎重に管理する必要があります。

インスタント アプリを有効にすると、以下のことをお勧めします。

  • 最もシンプルな設定の場合、またはカスタムロジックが必要な場合は手動でイベントを処理する autoSplashscreen: true インスタント アプリを有効にすると、以下のことをお勧めします。 appReady 最もシンプルな設定の場合、またはカスタムロジックが必要な場合は手動でイベントを処理する
  • を設定する keepUrlPathAfterReload を設定する true ユーザーの位置をアプリ内で維持する。
  • 必要に応じてアプリの状態を保存して復元することで、ユーザーの進捗を失うことなく。
  • アプリの更新動作を徹底的にテストして、突然の移行、状態の喪失、または位置の混乱を防ぐ。

ほとんどの場合、デフォルトの更新動作は、迅速に更新を提供し、混乱を最小限に抑えるバランスがとれることが多い。しかし、アプリの特定のニーズがある場合は、Capgoが、更新を適用するタイミングや方法をカスタマイズできる。

あなたが「Update Behavior」を使用している場合 「Update Behavior」を使用してライブ更新の配信を計画している場合、__CAPGO_KEEP_0__ Live Updatesと接続する。 「__CAPGO_KEEP_0__ Live Updates」で「__CAPGO_KEEP_0__ Live Updates」の製品ワークフローに接続する。 「Capgo Live Updates」 for the product workflow in Capgo Live Updates, 「Update Behavior」 概要の実装詳細 機能 実装詳細 アップデートの種類 実装詳細 スタートガイド 実装詳細