動作の更新
このプラグインのインストール手順とフルマークダウンガイドを含むセットアップの質問をコピーする。
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はアプリの更新を以下のように処理します。
-
アプリが前面に移動したとき、Capgo プラグインは新しいアップデートが利用可能かどうかを確認します。アプリが開いている間、再帰的なタイマーによって制御される間にも、再度確認します。
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', }, ],});利用可能な遅延条件は次のとおりです:
: 指定された日時以降にアップデートを適用する
date: アプリがバックグラウンドで実行されている時間が一定期間経過した後、またはアプリがバックグラウンドで実行されている時間が一定期間経過した後、アップデートを適用するbackgroundThe available delay conditions are:nativeVersion: __CAPGO_KEEP_0__の最小バージョンがインストールされるまでの待機kill: アプリの次の終了イベントまでの待機
これらの条件を組み合わせて、更新のインストールを厳密に制御できます。
For critical updates or apps with very simple state, you may want to apply an update as soon as it’s downloaded, without waiting for a background or kill event. Capgo supports this via the autoUpdate Capacitor config
autoUpdate は設定されています capacitor.config.ts ファイルは、JavaScriptではありません code。 以下の値をサポートしています。
falseまたは'off'自動更新の確認を無効にするtrueまたは'atBackground'(default): 起動時に自動で確認し、ダウンロードし、次にアプリがバックグラウンドに移動する時にはアップデートを適用する'atInstall': 即時適用は、最新のインストールまたはネイティブアプリストアの更新後のみ; そうでない場合は"atBackground"挙動'onLaunch': アプリが起動状態から前面に表示される(冷却開始)場合のみ即座に適用します。最初のチェック後は、その後は"atBackground"振る舞い'always': __CAPGO_KEEP_0__の更新が利用可能な場合に、前景遷移ごとに確認し、すぐに適用します。'onlyDownload': __CAPGO_KEEP_0__を自動で確認し、ダウンロードし、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;」とともに、__CAPGO_KEEP_0__の前景遷移ごとに確認し、ダウンロードが完了したときに、その確認中に即時適用を実行します。ユーザーがアプリを使用している場合でも、即時適用の同様の動作をトリガーできます。繰り返しチェックは、__CAPGO_KEEP_0__で制御されます。 autoUpdate: 'always'Capgoの間隔でトリガーされる繰り返しチェックは、同じ即時適用の動作をトリガーできます。 periodCheckDelay __CAPGO_KEEP_0__の間隔でトリガーされる繰り返しチェックは、同じ即時適用の動作をトリガーできます。
注意事項は、 autoUpdate codeはJavaScriptで
自動ダウンロードのみ
セクション「自動ダウンロードのみ」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', }, },};このモードでは、プラグインは updateAvailable ダウンロードされたバンドル後、Your appはアップデートを呼び出すタイミングや表示するかどうかを決定できます。 CapacitorUpdater.set() または、Your appが独自のアップデートの表示を呼び出すかどうかを決定できます。
自動スプラッシュスクリーン処理
「自動スプラッシュスクリーン処理」のセクションインスタント適用モードを簡単に使用できるようにするために、Capgoはバージョン 7.6.0以降から利用可能なオプションを提供しています。 autoSplashscreen コピー
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};アップデートが適用された場合、プラグインは自動的にスプラッシュスクリーンを非表示にします。 autoSplashscreen アップデートが必要ない場合、プラグインは自動的にスプラッシュスクリーンを非表示にします。
- アップデートの適用後にスプラッシュスクリーンを非表示にする必要はありません。
- Copy to clipboard
- When is enabled: The plugin automatically hides the splashscreen when an update is applied The plugin automatically hides the splashscreen when no update is needed You don’t need to manually listen for
appReady__CAPGO_KEEP_0__SplashScreen.hide()
手動スプラッシュスクリーン管理
手動スプラッシュスクリーン管理あなたが手動制御を好む場合や、カスタムロジックが必要な場合は、 autoSplashscreen あなた自身で管理することができます:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();The appReady アプリが初期化と、適用中の更新を適用した後、イベントが発生します。この時点で、アプリのUIを表示することが安全です。ユーザーは、最新バージョンを表示するように保証されます。
イベントの処理に加えて、 appReady 設定オプションを keepUrlPathAfterReload に設定することをお勧めします。インスタントアプリケーションモードを使用する場合、更新によりアプリが再読み込みされる際に、現在のURLパスを保持し、ユーザーの位置を維持し、混乱を最小限に抑えることができます。 true when using an instant apply mode. This preserves the current URL path when the app is reloaded due to an update, helping maintain the user’s location in the app and reducing disorientation.
If you don’t handle the __CAPGO_KEEP_0__ and set __CAPGO_KEEP_1__, appReady when using an instant apply mode, the user may briefly see a stale version of the app, be taken back to the initial route, or see a flicker as the update is applied. keepUrlPathAfterReload Using an instant apply mode can be useful for delivering critical bug fixes or security patches, but it comes with some tradeoffs:
The user may see a brief flicker or loading state as the update is applied if you don’t properly handle the splashscreen (either with __CAPGO_KEEP_2__ or manual __CAPGO_KEEP_3__ event handling).
- If the update modifies the app state or UI, the user may see a disruptive change in the middle of a session.
autoSplashscreenThe user’s location in the app may be lost if __CAPGO_KEEP_4__ is not set, potentially disorienting them.appReadyYou’ll need to carefully handle saving and restoring state to ensure a smooth transition. - If you do enable instant apply, we recommend: __CAPGO_KEEP_5__
- __CAPGO_KEEP_6__
keepUrlPathAfterReload__CAPGO_KEEP_7__ - __CAPGO_KEEP_8__
__CAPGO_KEEP_9__
- 使用
autoSplashscreen: true最単純なセットアップの場合、またはカスタムロジックが必要な場合は、イベントを手動で処理します。appReady設定 - を
keepUrlPathAfterReloadユーザーの位置をアプリ内で保存するために使用します。true必要に応じてアプリの状態を保存して復元することで、ユーザーの進捗を失うことなく避けることができます。 - アプリの更新動作を徹底的にテストして、突然の移行、失われた状態、または混乱を招く位置の変更がないことを確認します。
- ほとんどの場合、デフォルトの更新動作が、迅速に更新を提供し、混乱を最小限に抑えるバランスをとることができます。しかし、アプリに特定のニーズがある場合は、__CAPGO_KEEP_0__が、更新を適用するタイミングと方法をカスタマイズする柔軟性を提供します。
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.
「更新動作」セクション
あなたが使用している場合 Update Behavior ライブアップデートの配信を計画するには、を接続してください。 Capgoライブアップデート Capgoライブアップデートの製品ワークフロー用 概要 概要の実装詳細用 機能 機能の実装詳細用 アップデートの種類 アップデートの種類の実装詳細用 はじめに はじめにの実装詳細用