コンテンツにスキップ

__CAPGO_KEEP_3__

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

Capgoの更新動作は、更新をできるだけ早く提供することと、ユーザーの体験を最小限に抑えることを目指しています。

Capgoは、デフォルトではアプリの更新をどのように扱うかを次のとおり説明します。

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

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

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

  4. __CAPGO_KEEP_0__の更新が完了した後、ユーザーがアプリを再起動すると、最新のバージョンを実行することになります。

このフローにより、ユーザーは常に最新バージョンのアプリを実行し、更新のポップアップやダウンロードの待機時間に遭遇することなく、いつでも最新バージョンのアプリを実行できます。

バックグラウンドまたはキルイベントで更新を適用することは、ユーザー体験にいくつかの重要な利点をもたらします。

  • ユーザーは更新のポップアップやダウンロードの待機時間に遭遇することなく、セッションの途中で更新を受け取る必要がありません。

  • セッションの間には、更新がシームレスに適用されるため、アプリを起動するときの体験は常に新鮮です。

  • 頻繁に更新を配信することができますが、有効なユーザーに影響を与える心配はありません。

主な欠点は、ユーザーがアプリをバックグラウンドにし、すぐにアプリを復帰すると、更新が適用された間のアクションの途中で未保存の状態を失う可能性があることです。

この問題を緩和するには、以下のことをお勧めします。

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

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

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

更新が適用されるタイミングをカスタマイズする

「更新が適用されるタイミングをカスタマイズする」のセクション

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

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

: これらの条件を組み合わせて、アップデートのインストール時期を厳密に制御できます。

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 directUpdate 設定オプション。

directUpdate は、 capacitor.config.ts ファイルに設定されます。JavaScriptではcodeに設定されます。

  • false デフォルト: アプリ起動時にダウンロードする(defaultの動作を使用: 起動時、バックグラウンド時)
  • 'atInstall'アプリがインストールされた場合、またはストアからアップデートされた場合にのみ直接更新します。
  • 'onLaunch'アプリがインストールされた場合、またはストアからアップデートされた場合、またはアプリが終了された場合にのみ直接更新します。
  • 'always'上記のすべてのケースで直接更新します。アプリがインストールされた場合、またはストアからアップデートされた場合、またはアプリが終了された場合、またはアプリが再開された場合。
  • true 非推奨: 'always' のために使用します。バックワード互換性のために使用します。
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: true,
directUpdate: 'always', // or 'atInstall' for updates only on app install/update
autoSplashscreen: true, // NEW: Automatically handle splashscreen
keepUrlPathAfterReload: true,
},
SplashScreen: {
launchAutoHide: false, // Still required when using directUpdate
},
},
};
export default config;

__CAPGO_KEEP_0__はJavaScriptの追加のハンドリングが必要です。 directUpdate enabled, Capgo will immediately apply an update as soon as the download completes during an update check, even if the user is actively using the app. Without periodic checking enabled, this means updates will only be applied when the app starts or resumes from background.

注意 directUpdate is a native configuration, it requires some additional handling in your JavaScript code.

使い易くするために、__CAPGO_KEEP_0__は、バージョン 7.6.0 以降で利用可能なオプションを提供しています。このオプションは、自動的にスプラッシュ画面を非表示にする機能です。 directUpdate easier to use, Capgo provides an autoSplashscreen 有効になっている場合:

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

更新が必要ない場合、プラグインは自動的にスプラッシュ画面を非表示にします。 autoSplashscreen 手動で更新のリスナーを設定する必要はありません。

  • To make
  • easier to use
  • option that automatically handles hiding the splashscreen for you 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 に設定することをお勧めします。 true __CAPGO_KEEP_1__ directUpdate. この URL パスを現在の URL パスで保存することで、更新のためアプリを再読み込みすると、ユーザーの位置を維持し、混乱を減らすことができます。

「イベント」が発生し、「」を設定しない場合、ユーザーは、古いバージョンのアプリを一瞬見るか、初期ルートに戻されるか、または更新が適用される際にフリッカーを経験する可能性があります。 appReady 「」を使用することは、重要なバグ修正またはセキュリティパッチを提供するのに役立ちますが、代わりにいくつかのトレードオフが伴います: keepUrlPathAfterReload ユーザーが「」または「」を使用して「」を適切に処理しない場合、更新が適用される際にフリッカーまたはロード中の状態が表示される可能性があります。 directUpdate更新がアプリの状態または UI を変更した場合、ユーザーはセッションの途中で大きな変化を経験する可能性があります。

アプリのユーザーの位置が失われる可能性があります。 directUpdate __CAPGO_KEEP_0__

  • __CAPGO_KEEP_1__ autoSplashscreen __CAPGO_KEEP_2__ appReady __CAPGO_KEEP_3__
  • __CAPGO_KEEP_4__
  • __CAPGO_KEEP_5__ keepUrlPathAfterReload __CAPGO_KEEP_0__は設定されていない場合、ユーザーは混乱する可能性があります。
  • アプリの更新を実行するには、保存と復元する際に注意が必要です。状態の保存と復元を適切に実行しないと、スムーズな移行が保証されません。

もしも"__CAPGO_KEEP_1__"を有効にした場合、以下のことをお勧めします: directUpdate最も簡単な設定の場合は、"__CAPGO_KEEP_2__"を使用してください。必要に応じてカスタムロジックを実装する場合は、"__CAPGO_KEEP_2__"イベントを手動で処理してください。

  • __CAPGO_KEEP_3__を"__CAPGO_KEEP_4__"に設定して、ユーザーの位置をアプリ内で保存してください。 autoSplashscreen: true 必要に応じて、アプリの状態を保存して復元して、ユーザーの進捗状況を失うことなくアプリを更新してください。 appReady アプリの更新を実行する際に、適切なテストを実施して、不快な移行、状態の喪失、位置の変更による混乱を防ぎましょう。
  • __CAPGO_KEEP_0__ keepUrlPathAfterReload __CAPGO_KEEP_1__ true __CAPGO_KEEP_2__
  • __CAPGO_KEEP_3__
  • __CAPGO_KEEP_4__

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