コンテンツにスキップ

@capgo/capacitor-widget-kit

Capacitor用のWidgetKitとLive Activities

@capgo/capacitor-widget-kit Capacitorアプリには、WidgetKitとLive Activitiesを2つの方法で制御することができます。

  • SVGテンプレートアクティビティ: WidgetKitの表面をSVGで定義し、タップで名前付きフレームを切り替え、タイマーを停止/再生、JSON状態を変更し、アプリ内でアクションイベントを収集します。
  • フルネイティブウィジェットセッション: ウィジェットUIをSwift/Kotlin/Javaで完全に保持し、Capacitorが共有JSON状態とアプリ間またはウィジェット間のメッセージを所有します。

SVGテンプレートを使用して、解決されたSVG文字列からウィジェットをレンダリングできる場合に、SVGテンプレートアクティビティを使用してください。ウィジェットがカスタムネイティブUIを必要とする場合でも、ウィジェットが開始、停止、状態を同期、またはアプリに非同期作業を完了させるように求める必要がある場合は、フルネイティブセッションを使用してください.

モード最適主なAPI
SVGテンプレートの活動ライブ活動またはウィジェット表面がSVG出力からレンダリングされるstartTemplateActivity, performTemplateAction, listTemplateEvents
フルネイティブウィジェットセッションネイティブでレンダリングされたウィジェットが共有状態と非同期ジョブが必要startWidgetSession, updateWidgetSession, sendWidgetMessage

両方のモードは同じアプリ内で動作することができます。例えば、ワークアウトアプリでは、高速フレーム/タイマーコントロール用にSVGライブ活動を使用し、ホームスクリーンウィジェットにリッチなネイティブレイアウトを使用するためにフルネイティブウィジェットセッションを使用できます。

SVG テンプレートには、インタラクティブなウィジェット表面のために必要な部分が含まれています:

  • frames __CAPGO_KEEP_0__ summary, timer__CAPGO_KEEP_0__ details.
  • frameMutations __CAPGO_KEEP_0__
  • timerMutations __CAPGO_KEEP_0__
  • patches __CAPGO_KEEP_0__
  • hotspots __CAPGO_KEEP_0__
  • listTemplateEvents __CAPGO_KEEP_0__

__CAPGO_KEEP_0__ {{state.title}}, {{timers.rest.remainingText}}__CAPGO_KEEP_0__ {{meta.template.kind}} フルネイティブ ブリッジ機能

フルネイティブ セッションは、UI をネイティブにレンダリングするウィジェット用です:

  • startWidgetSession code のネイティブ ウィジェットに共有された状態とメタデータを生成します。
  • updateWidgetSession __CAPGO_KEEP_0__ の状態をマージまたは置き換え、セッションを再度有効にします。
  • stopWidgetSession __CAPGO_KEEP_0__ の最終状態を記録し、セッションを停止します。
  • sendWidgetMessage アプリからウィジェットまたはウィジェットからアプリへの作業をキューにします。
  • acknowledgeWidgetMessages メッセージを受信済みとしてマークします。
  • completeWidgetMessage 非同期ジョブのレスポンスまたは失敗を格納します。

メッセージは完了後、再試行しても既存の結果を上書きせずに返します。

パブリック API

パブリック API
メソッド概要
areActivitiesSupported現在のデバイスでネイティブテンプレートアクティビティブリッジを実行できるかどうか確認します。
startTemplateActivitySVGテンプレートアクティビティを保存し、ネイティブライブアクティビティブリッジを開始します。
updateTemplateActivityアクティビティ定義、状態、またはURLを開きます。
endTemplateActivity実行中のアクティビティを終了し、最後の状態スナップショットを保存することもできます。
performTemplateAction宣言的パッチ、フレーム変化、タイマー変化、イベントログを実行します。
getTemplateActivity保存されたテンプレートアクティビティを読み取ります。
listTemplateActivities保存されたすべてのテンプレートアクティビティをリストします。
listTemplateEventsテンプレートアクションから発生したアクションイベントを読み取ります。
acknowledgeTemplateEventsテンプレートイベントを処理済みとしてマークします。
startWidgetSession共有JSON状態で裏付けられたフルネイティブウィジェットセッションを開始します。
updateWidgetSessionフルネイティブウィジェットセッションの状態をマージまたは置き換えます。
stopWidgetSession完全ネイティブウィジェットセッションを停止し、オプションで最終状態を保存します。
getWidgetSession1つの完全ネイティブウィジェットセッションを読み取ります。
listWidgetSessionsすべての完全ネイティブウィジェットセッションをリストします。
sendWidgetMessageアプリとネイティブウィジェットcode間のメッセージをキューに追加します。
listWidgetMessagesキューされたブリッジメッセージをリストします。
acknowledgeWidgetMessagesブリッジメッセージを認識します。
completeWidgetMessage非同期ブリッジメッセージを完了または失敗します。
getPluginVersionプラットフォーム実装バージョンマーカーを返します。

このプラグインは、ウィジェットターゲット用にネイティブヘルパーも提供しています。

  • CapgoTemplateWidgetBridge SVGテンプレート表面を解決します。 svg, frameId, hotspots, およびメタデータ。
  • CapgoTemplateActionIntent iOS ウィジェットのインタラクティブなボタンをテンプレートアクションに接続します。
  • CapgoNativeWidgetBridge code からネイティブウィジェットのフルネイティブセッションとメッセージを読み込みます。
  • Android テンプレートヘルパーは、受信アクションとウィジェットブリッジの動作をマッチングします。

API の参照は、プラグインリポジトリから同期されています。 src/definitions.ts プラグインリポジトリ