メニューに進む

@capgo/capacitor-widget-kit

Capacitor アプリ用の WidgetKit と Live Activities、SVG ドライブ テンプレートまたはフルネイティブ ウィジェット ステート シンク

概要

概要

@capgo/capacitor-widget-kit Capacitor アプリには、ウィジェットとライブ アクティビティを制御する 2 つの方法があります。

  • SVG テンプレート活動: WidgetKit 表面を SVG で定義、タップから名前を切り替え、タイマーを停止/再生、JSON ステートを変化させ、そしてアプリ内でアクション イベントを収集。
  • フルネイティブ ウィジェット セッション: Capacitor が所有する共有 JSON ステートとアプリからウィジェットへのメッセージやウィジェットからアプリへのメッセージを含めながら、ウィジェット UI を完全に Swift/Kotlin/Java で維持します。

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

Capacitor ドライブされたテンプレート ウィジェットの状態とコントロールを示すアニメーション ウィジェット キット デモ
ウィジェット テンプレート フロー
モード最適主な API
SVG テンプレート アクティビティLive Activities またはウィジェット表面が SVG 出力からレンダリングされるstartTemplateActivity, performTemplateAction, listTemplateEvents
フルネイティブ ウィジェット セッションネイティブでレンダリングされたウィジェットが共有状態と非同期ジョブが必要startWidgetSession, updateWidgetSession, sendWidgetMessage

両方のモードは同じアプリ内で共存できます。例えば、ワークアウト アプリでは、SVG Live Activity を使用して高速フレーム/タイマー制御と、フルネイティブ ウィジェット セッションを使用してホーム画面ウィジェットにリッチなネイティブレイアウトを実装できます。

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

  • frames 名前付き SVG のバリアント、 summary, timer、または details.
  • frameMutations ホットスポット アクション後にフレームをスイッチ、タグル、またはステップする。
  • timerMutations 開始、停止、再生、タグル、リセット、停止、またはタイマー期間を変更します。
  • patches JSON状態を更新するには、文字列値、テンプレート、タイムスタンプ、インクリメント、フラグ、または未設定の操作を使用します。
  • hotspots タップエリアをアクション識別子にマップします。
  • listTemplateEvents アプリは、ウィジェットから発生したアクションを後で処理できます。

ランタイムは、ネイティブ ブリッジがレンダリング用の表面を返す前に、次のプレースホルダーを解決します。 {{state.title}}, {{timers.rest.remainingText}}{{meta.template.kind}} ネイティブ ブリッジのフル機能

ネイティブウィジェット__CAPGO_KEEP_0__の共有状態とメタデータを作成します。

  • startWidgetSession creates shared state and metadata for native widget code.
  • updateWidgetSession 最終状態を記録し、セッションを停止します。
  • stopWidgetSession Full-Native Bridge Capabilities
  • sendWidgetMessage __CAPGO_KEEP_0__
  • acknowledgeWidgetMessages __CAPGO_KEEP_0__
  • completeWidgetMessage __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

Public API

Public API
__CAPGO_KEEP_0____CAPGO_KEEP_0__
areActivitiesSupported__CAPGO_KEEP_0__
startTemplateActivity__CAPGO_KEEP_0__
updateTemplateActivity__CAPGO_KEEP_0__
endTemplateActivity__CAPGO_KEEP_0__
performTemplateAction__CAPGO_KEEP_0__
getTemplateActivity1つの保存されたテンプレートアクティビティを読みます。
listTemplateActivities保存されたテンプレートアクティビティのリストを表示します。
listTemplateEventsテンプレートアクションから発生したアクションイベントを読みます。
acknowledgeTemplateEventsテンプレートイベントを処理済みとしてマークします。
startWidgetSession共有JSONステートをバックアップするフルネイティブウィジェットセッションを開始します。
updateWidgetSessionフルネイティブウィジェットセッションのステートをマージまたは置き換えます。
stopWidgetSessionフルネイティブウィジェットセッションを停止し、オプションで最終ステートを保存します。
getWidgetSession1つのフルネイティブウィジェットセッションを読みます。
listWidgetSessionsフルネイティブウィジェットセッションのリストを表示します。
sendWidgetMessageQueue a message between the app and native widget code.
listWidgetMessagesキュー内のブリッジメッセージのリストを表示します。
acknowledgeWidgetMessages__CAPGO_KEEP_0__
completeWidgetMessage非同期ブリッジメッセージを完了または失敗します。
getPluginVersionプラットフォーム実装バージョンマーカーを返します。

プラグインには、ウィジェットターゲット用のネイティブヘルパーも同梱されています。

  • CapgoTemplateWidgetBridge SVGテンプレート表面を解決します。 svg, frameId, hotspotsウィジェットのアクションとメタデータを提供します。
  • CapgoTemplateActionIntent iOSウィジェットのインタラクティブボタンをテンプレートアクションに接続します。
  • CapgoNativeWidgetBridge loads full-native sessions and messages from native widget code.
  • Androidテンプレートヘルパーは、ウィジェットブリッジの動作とアクション受信者を提供します。

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

capgoから始めて、@capacitor-widget-kit/__CAPGO_KEEP_2__

「capgoから始めて、@capacitor-widget-kit」」セクション

Capgoを使用している場合 @capgo/capacitor-widget-kit CI/CD自動化の計画に使用している場合、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-widget-kit Using @capgo/capacitor-widget-kit @capgo/capacitor-widget-kit Capgo CI/CD 「@Capgo/__CAPGO_KEEP_1__-widget-kit」を使用して、Capacitorのネイティブ機能を使用してください。 Capgoネイティブビルド Capgoネイティブビルドの製品ワークフロー用 Capgo統合 Capgo統合の製品ワークフロー用、 CI/CD統合 CI/CD統合の実装詳細用