컨텐츠로 바로가기

@capgo/capacitor-widget-kit

Capacitor 앱에 대한 WidgetKit 및 Live Activities, SVG로 구동되는 템플릿 또는 전체 네이티브 위젯 상태 동기화

Overview

Overview

@capgo/capacitor-widget-kit Capacitor 앱은 두 가지 방법으로 위젯과 라이브 활동을 제어합니다.

  • SVG 템플릿 활동: SVG로 위젯 키트 표면을 정의하고 탭으로 이름이 지정된 프레임을switch, 일시 중단/재생 타이머를 실행하고 JSON 상태를 변형하고 앱에서 액션 이벤트를 수집합니다.
  • 전체 네이티브 위젯 세션: 위젯 UI를 완전히 스위프트/코틀린/자바로 유지하면서 Capacitor이 공유된 JSON 상태와 앱에서 위젯으로 또는 위젯에서 앱으로의 메시지를 소유합니다.

SVG 템플릿을 사용하여 위젯이 해결된 SVG 문자열로 렌더링될 수 있는 경우 사용하십시오. 전체 네이티브 세션을 사용하여 위젯이 커스텀 네이티브 UI가 필요하지만 여전히 시작, 중단, 동기화 상태 또는 앱에서 비동기 작업을 완료하도록 요청해야 할 경우 사용하십시오.

Demo

Demo
Capacitor로부터 템플릿 위젯 상태 및 제어를 받는 애니메이션 위젯 키트 데모
위젯 템플릿 흐름

선택 A 모드

선택 A 모드
모드추천주요 API
SVG 템플릿 활동Live Activities 또는 위젯 표면이 SVG 출력에서 렌더링되는 경우startTemplateActivity, performTemplateAction, listTemplateEvents
전체 네이티브 위젯 세션네이티브 렌더링 위젯이 공유 상태와 비동기 작업이 필요한 경우startWidgetSession, updateWidgetSession, sendWidgetMessage

모두 동일한 앱에 존재할 수 있습니다. 예를 들어, 운동 앱은 빠른 프레임/타이머 제어를 위해 SVG Live Activity를 사용하고 richer 네이티브 레이아웃을 가진 홈 스크린 위젯을 위해 전체 네이티브 위젯 세션을 사용할 수 있습니다.

SVG 템플릿 기능

SVG 템플릿 기능

SVG 템플릿은 인터랙티브 위젯 표면을 위한 필요한 조각을 포함합니다:

  • frames 이름이 지정된 SVG 변형 summary, timer, or details.
  • frameMutations 스위치, 토글, 또는 프레임 액션 후 프레임을 순서대로 이동합니다.
  • timerMutations 시작, 일시 정지, 재개, 토글, 초기화, 중지, 또는 타이머 시간을 변경합니다.
  • patches literal 값, 템플릿, 타임스탬프, 증가, 토글, 또는 unset 연산을 사용하여 JSON 상태를 업데이트합니다.
  • hotspots 터치 영역을 액션 식별자와 매핑합니다.
  • listTemplateEvents 앱은 위젯에서 기인한 액션을 나중에 처리할 수 있도록 합니다.

The runtime resolves placeholders like __CAPGO_KEEP_0__ {{state.title}}, {{timers.rest.remainingText}}, and {{meta.template.kind}} 자연어 브리지를 반환하기 전에 렌더링을 위한 표면을 반환하기 전에

자연어 브리지를 사용하는 전체-자연어 세션은 UI를 자체적으로 렌더링하는 위젯을 위한 것입니다:

자연어 브리지를 사용하는 전체-자연어 세션

자연어 세션

  • startWidgetSession native widget code를 공유 상태와 메타데이터로 생성합니다.
  • updateWidgetSession __CAPGO_KEEP_0__의 상태를 병합하거나 대체하고 세션을 다시 활성화합니다.
  • stopWidgetSession 세션을 중지하고 마지막 상태를 기록합니다.
  • sendWidgetMessage 앱에서 위젯으로 또는 위젯에서 앱으로의 작업을 대기열에 넣습니다.
  • acknowledgeWidgetMessages 메시지를 수신으로 표시합니다.
  • completeWidgetMessage 비동기 작업의 결과나 실패를 저장합니다.

완료된 메시지는 중복 처리가 가능합니다. 완료된 또는 실패한 메시지를 다시 시도하면 기존 결과가 반환되고 덮어쓰지 않습니다.

메서드설명
areActivitiesSupported현재 기기에 native template activity bridge가 실행될 수 있는지 확인합니다.
startTemplateActivitySVG 템플릿 활동을 영구 저장하고 원시 Live Activity 브리지 시작.
updateTemplateActivity활동 정의, 상태 또는 열 URL을 교체.
endTemplateActivity실행 중인 활동 종료하고 optionally 마지막 상태 스냅샷을 영구 저장.
performTemplateAction선언적 패치, 프레임 변형, 타이머 변형 및 이벤트 로깅을 실행.
getTemplateActivity저장된 SVG 템플릿 활동 한 개 읽기.
listTemplateActivities저장된 SVG 템플릿 활동 목록.
listTemplateEvents템플릿 액션으로부터 방출된 액션 이벤트 읽기.
acknowledgeTemplateEvents템플릿 이벤트를 처리한 것으로 표시.
startWidgetSession공유 JSON 상태에 의해 백업된 전체 원시 위젯 세션 시작.
updateWidgetSession전체 원시 위젯 세션 상태를 병합 또는 교체.
stopWidgetSession전체 원시 위젯 세션을 중단하고 optionally 최종 상태 영구 저장.
getWidgetSession전체 원시 위젯 세션 한 개 읽기.
listWidgetSessions모든 네이티브 위젯 세션을 목록화합니다.
sendWidgetMessage앱과 네이티브 위젯 code 사이의 메시지를 큐합니다.
listWidgetMessages큐된 브리지 메시지를 목록화합니다.
acknowledgeWidgetMessages브리지 메시지를 확인합니다.
completeWidgetMessage비동기 브리지 메시지를 완료하거나 실패합니다.
getPluginVersion플랫폼 구현 버전 마커를 반환합니다.

네이티브 피스

네이티브 피스

이 플러그인은 위젯 대상에 대한 네이티브 헬퍼도 제공합니다:

  • CapgoTemplateWidgetBridge SVG 템플릿 표면을 해석하여 svg, frameId, hotspots, 및 메타데이터를 반환합니다.
  • CapgoTemplateActionIntent 템플릿 액션에 연결된 인터랙티브 iOS 위젯 버튼을 연결합니다.
  • CapgoNativeWidgetBridge 자연스럽게 code의 전체 네이티브 세션 및 메시지를 로드합니다.
  • 안드로이드 템플릿 헬퍼는 액션 수신자와 위젯 브리지를 위한 일치하는 동작을 제공합니다.

API 참조는 플러그인 저장소에서 동기화됩니다. src/definitions.ts 플러그인 저장소에서.

Capgo를 사용 중이라면 @capgo/capacitor-widget-kit CI/CD 자동화 계획을 위해 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-widget-kit을 사용 중이라면 Capgo를 사용하여 @capgo/capacitor-widget-kit Capgo의 원시 기능을 사용하는 @capgo/capacitor-widget-kit Capgo CI/CD Capgo의 제품 워크플로우에서 Capgo CI/CD Capgo 원시 빌드 Capgo의 제품 워크플로우에서 Capgo 원시 빌드 Capgo 통합 Capgo의 제품 워크플로우에서 Capgo 통합 CI/CD 통합 CI/CD 통합 구현 세부 사항