コンテンツにスキップ

更新の適用方法

When you release an update to your Capgo app, you probably want your users to receive that update as soon as possible. But you also don’t want to disrupt their experience by forcing them to wait for a download or restart the app in the middle of a session.

Capgoのアップデートの動作は、ユーザーに最小限の不便を与えながら、迅速にアップデートを提供するバランスをとるように設計されています。

Capgoは、デフォルトでは、以下の方法でアプリのアップデートを処理します。

  1. アプリ起動時に、Capgo プラグインは、新しいアップデートが利用可能かどうかを確認します。

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

  3. ダウンロードが完了すると、Capgoはユーザーがアプリをバックグラウンドに送ったり、完全にアプリを終了したりするのを待ちます。

  4. ユーザーがアプリを再起動すると、最新バージョンのアプリを実行します。

このフローは、ユーザーにアップデートのポップアップやダウンロードの待機を強制することなく、常に最新バージョンのアプリを実行することを保証します。

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

  • ユーザーはアップデートのプロンプトに打ち勝たず、セッションの途中でダウンロードを待たずに済みます。

  • セッションの間、更新が自動的に適用されるため、起動アプリの体験は常に新鮮です。

  • 頻繁にアップデートを配信することができますが、活発なユーザーに影響を与える心配はありません。

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

これを回避するために、以下のことを推奨します:

  • 頻繁に状態を保存し、再開時には優雅に状態を復元すること。

  • 大きなアプリの状態を変更する頻繁なアップデートを避けること。

  • 敏感なフローをカスタマイズすることを検討すること (以下を参照)。

アップデートの適用時期をカスタマイズする

Section titled “Customizing When Updates Are Applied”

アップデートの適用時期をカスタマイズする

Capgo provides a setDelay __CAPGO_KEEP_0__は

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は、この機能をサポートしており、Capgoの設定ファイルに「policy」を設定することで、即時アップデートを適用できます。 autoUpdate policy in your Capacitor config.

autoUpdate に設定されています capacitor.config.ts ファイルはJavaScriptではありません code. 以下の値をサポートしています:

  • false または 'off': 自動更新を無効にする
  • true または 'atBackground' (デフォルト): アプリがバックグラウンドに移動したときに自動でダウンロードして適用
  • 'atInstall': フレッシュインストールまたはネイティブアプリの更新後のみ即時適用、他の場合はバックグラウンドフローを使用
  • 'onLaunch': アプリ起動後即時適用、起動チェック後はバックグラウンドフローを使用
  • 'always': 自動更新が実行される度に即時適用
  • 'onlyDownload': 自動でダウンロードし、emit、、そして次のバンドルを自動設定せず updateAvailableクリップボードにコピー
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;

の場合 autoUpdate: 'always', Capgo が更新のダウンロードが完了したときに即時適用します。ユーザーがアプリを使用している場合でも、更新は適用されます。定期的なチェックが有効になっていない場合、更新はアプリ起動時またはバックグラウンドから復帰時のみ適用されます。

注意 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() アプリは、

または自分のアップデートの表示を決定できます。

自動スプラッシュ画面管理

To make instant apply modes easier to use, Capgo provides an autoSplashscreen __CAPGO_KEEP_0__は、インスタント適用モードを使用しやすくするために、

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

When autoSplashscreen 有効の場合

  • プラグインは自動的にスプラッシュスクリーンを非表示にします。アップデートが適用されたとき
  • プラグインは自動的にスプラッシュスクリーンを非表示にします。アップデートが必要ないとき
  • イベントを手動でリスンする必要はありません。 appReady または SplashScreen.hide()

APIを呼び出す必要はありません。

手動でスプラッシュスクリーンを制御する

セクションのタイトルは “手動でスプラッシュスクリーンを制御する” autoSplashscreen スプラッシュスクリーンを手動で制御したい場合は、またはカスタムロジックが必要な場合は、

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

The event fires once the app has finished initializing and applying any pending updates. This is the point at which it’s safe to show your app’s UI, as it ensures the user will see the latest version. appReady インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。

インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。 appReady インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。 keepUrlPathAfterReload インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。 true インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。

インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。 appReady インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。 keepUrlPathAfterReload インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。

インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。

  • インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。 autoSplashscreen インストールと更新の適用が完了した後、イベントが発生します。この時点で、最新のバージョンを表示することができるようになります。 appReady __CAPGO_KEEP_0__。
  • 更新がアプリの状態やUIを変更した場合、ユーザーはセッションの途中で不快な変更を確認する可能性があります。
  • アプリ内でユーザーの位置が失われる可能性があります。 keepUrlPathAfterReload が設定されていない場合、ユーザーは混乱する可能性があります。
  • 保存と復元の状態を慎重に管理する必要があります。

アプリのスムーズな移行を保証するために、

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

ほとんどの場合、デフォルトの更新動作が、迅速な更新の配信と混乱を最小限に抑えるバランスをとる最適な選択肢となる。ただし、特定のニーズを持つアプリでは、Capgoが、更新の適用時期と方法をカスタマイズする柔軟性を提供する。

更新動作のカスタマイズを続ける

更新動作のカスタマイズを続けるセクション

Capgoを使用している場合 更新動作 を使用して、ライブ更新の配信計画を立てる場合は、__CAPGO_KEEP_0__ Live Updates と接続する。Capgo Live Updates for the product workflow in Capgo Live Updates, __CAPGO_KEEP_0__ Live Updates の実装詳細については、Overviewを参照する。Overview 機能 __CAPGO_KEEP_0__ 更新タイプ __CAPGO_KEEP_1__ はじめに __CAPGO_KEEP_2__