コンテンツにジャンプ

capgo/capacitor-ウィジェットキット

ウィジェットキットとライブアクティビティをCapacitorアプリに追加し、SVGドライブのテンプレートまたはフルネイティブのウィジェットステートシンクを使用します。

@capgo/capacitor-widget-kit gives a Capacitor アプリに2つの方法でウィジェットとライブアクティビティを制御する

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

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

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

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

SVG テンプレート機能

SVG テンプレート機能

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

  • frames 名前付き SVG のバリアント summary, timer, または details.
  • frameMutations ホットスポット アクション後にフレームをスイッチ、タグル、またはステップする
  • timerMutations 開始、停止、リセット、またはタイマー期間を変更する
  • patches Capgoのライブアップデート
  • hotspots タップエリアをアクション識別子にマップします。
  • listTemplateEvents アプリはウィジェットから発生したアクションを後で処理します。

リッチエクスペリエンス {{state.title}}, {{timers.rest.remainingText}}リッチエクスペリエンス {{meta.template.kind}} リッチエクスペリエンス

リッチエクスペリエンス

リッチエクスペリエンス

リッチエクスペリエンス

  • startWidgetSession creates shared state and metadata for native widget code.
  • updateWidgetSession リッチエクスペリエンス
  • stopWidgetSession リッチエクスペリエンス
  • sendWidgetMessage アプリからウィジェット、またはウィジェットからアプリの作業キュー。
  • acknowledgeWidgetMessages メッセージを受信したことをマークします。
  • completeWidgetMessage 非同期ジョブのレスポンスまたは失敗を格納します。

完了後、メッセージは再試行しても既存の結果を返すため、idempotent です。完了または失敗したメッセージを再試行すると、既存の結果が返され、上書きされません。

メソッド説明
areActivitiesSupported現在のデバイスでネイティブ テンプレート アクティビティ ブリッジを実行できるかどうかを確認します。
startTemplateActivitySVG テンプレート アクティビティを永続化し、ネイティブ ライブ アクティビティ ブリッジを開始します。
updateTemplateActivityアクティビティ定義、状態、またはオープン URL を置き換えます。
endTemplateActivity実行中のアクティビティを終了し、最後の 1 つの状態スナップショットを永続化することもできます。
performTemplateAction宣言的パッチ、フレームの変化、タイマーの変化、イベントのログを実行します。
getTemplateActivity保存されたテンプレートアクティビティを1つ読み取ります。
listTemplateActivities保存されたテンプレートアクティビティをすべてリストします。
listTemplateEventsテンプレートアクションから発生したアクションイベントを読み取ります。
acknowledgeTemplateEventsテンプレートイベントを処理済みとしてマークします。
startWidgetSession共有JSONステートをバックアップするフルネイティブウィジェットセッションを開始します。
updateWidgetSessionフルネイティブウィジェットセッションのステートをマージまたは置き換えます。
stopWidgetSessionフルネイティブウィジェットセッションを停止し、最後のステートをオプションで保存します。
getWidgetSessionフルネイティブウィジェットセッションを1つ読み取ります。
listWidgetSessionsフルネイティブウィジェットセッションをすべてリストします。
sendWidgetMessageQueue a message between the app and native widget code.
listWidgetMessagesキューされたブリッジメッセージをすべてリストします。
acknowledgeWidgetMessagesメッセージを確認済みとしてマークします。
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_KEEP_0__ リポジトリの「__CAPGO_KEEP_1__-widget-kit」から続けてください。

「capgo リポジトリの「capacitor-widget-kit」から続けてください」

「@capgo/capacitor-ウィジェットキット」から続けてください。

「@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-widget-kit」を使用している場合 「@capgo/capacitor-widget-kit」を使用してCI/CDの自動化を計画する場合、capgo/capacitor-widget-kitと接続してください。 CI/CD自動化を計画するには、を接続します。 Using @capgo/capacitor-widget-kit Capgoのネイティブ機能の使用に@capgo/capacitor-ウィジェットキットを使用します。 「Capgo CI/CD」 「Capgo CI/CD」 Capgo 本機ビルド Capgoの製品ワークフロー Capgoの統合 Capgoの製品ワークフロー __CAPGO_KEEP_0__の統合 CI/CD統合