@capgo/capacitor-widget-kit
Capacitor用のWidgetKitとLive Activities
Overview
__CAPGO_KEEP_0__の概要@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テンプレートの機能
「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}} フルネイティブ ブリッジ機能
__CAPGO_KEEP_0__
フルネイティブ ブリッジ機能フルネイティブ セッションは、UI をネイティブにレンダリングするウィジェット用です:
startWidgetSessioncode のネイティブ ウィジェットに共有された状態とメタデータを生成します。updateWidgetSession__CAPGO_KEEP_0__ の状態をマージまたは置き換え、セッションを再度有効にします。stopWidgetSession__CAPGO_KEEP_0__ の最終状態を記録し、セッションを停止します。sendWidgetMessageアプリからウィジェットまたはウィジェットからアプリへの作業をキューにします。acknowledgeWidgetMessagesメッセージを受信済みとしてマークします。completeWidgetMessage非同期ジョブのレスポンスまたは失敗を格納します。
メッセージは完了後、再試行しても既存の結果を上書きせずに返します。
パブリック API
パブリック API| メソッド | 概要 |
|---|---|
areActivitiesSupported | 現在のデバイスでネイティブテンプレートアクティビティブリッジを実行できるかどうか確認します。 |
startTemplateActivity | SVGテンプレートアクティビティを保存し、ネイティブライブアクティビティブリッジを開始します。 |
updateTemplateActivity | アクティビティ定義、状態、またはURLを開きます。 |
endTemplateActivity | 実行中のアクティビティを終了し、最後の状態スナップショットを保存することもできます。 |
performTemplateAction | 宣言的パッチ、フレーム変化、タイマー変化、イベントログを実行します。 |
getTemplateActivity | 保存されたテンプレートアクティビティを読み取ります。 |
listTemplateActivities | 保存されたすべてのテンプレートアクティビティをリストします。 |
listTemplateEvents | テンプレートアクションから発生したアクションイベントを読み取ります。 |
acknowledgeTemplateEvents | テンプレートイベントを処理済みとしてマークします。 |
startWidgetSession | 共有JSON状態で裏付けられたフルネイティブウィジェットセッションを開始します。 |
updateWidgetSession | フルネイティブウィジェットセッションの状態をマージまたは置き換えます。 |
stopWidgetSession | 完全ネイティブウィジェットセッションを停止し、オプションで最終状態を保存します。 |
getWidgetSession | 1つの完全ネイティブウィジェットセッションを読み取ります。 |
listWidgetSessions | すべての完全ネイティブウィジェットセッションをリストします。 |
sendWidgetMessage | アプリとネイティブウィジェットcode間のメッセージをキューに追加します。 |
listWidgetMessages | キューされたブリッジメッセージをリストします。 |
acknowledgeWidgetMessages | ブリッジメッセージを認識します。 |
completeWidgetMessage | 非同期ブリッジメッセージを完了または失敗します。 |
getPluginVersion | プラットフォーム実装バージョンマーカーを返します。 |
ネイティブピース
「ネイティブピース」セクションこのプラグインは、ウィジェットターゲット用にネイティブヘルパーも提供しています。
CapgoTemplateWidgetBridgeSVGテンプレート表面を解決します。svg,frameId,hotspots, およびメタデータ。CapgoTemplateActionIntentiOS ウィジェットのインタラクティブなボタンをテンプレートアクションに接続します。CapgoNativeWidgetBridgecode からネイティブウィジェットのフルネイティブセッションとメッセージを読み込みます。- Android テンプレートヘルパーは、受信アクションとウィジェットブリッジの動作をマッチングします。
真実の源
「真実の源」というセクションAPI の参照は、プラグインリポジトリから同期されています。 src/definitions.ts プラグインリポジトリ