본문 바로가기
@capgo/capacitor-app-intents UI & 시스템 오픈 소스

App Intents를 Capacitor 플러그인

Capacitor에서 모든 액션마다 웹 레이어를 다시 빌드할 필요 없이 Siri 문구, Shortcuts, Spotlight, 홈 화면 퀵 액션, App Intents 엔티티 카탈로그를 배포하세요

설치

bun add @capgo/capacitor-app-intents bunx cap sync
npm, pnpm 또는 yarn
  • npm install @capgo/capacitor-app-intents
  • pnpm add @capgo/capacitor-app-intents
  • yarn add @capgo/capacitor-app-intents

가이드

Capacitor에서 App Intents 사용하는 법

@capgo/capacitor-app-intents 사용하기

Capgo App Intents 플러그인 인터페이스

설치

bun add @capgo/capacitor-app-intents
bunx cap sync

bunx cap sync 플러그인의 네이티브 code를 네이티브 프로젝트에 복사합니다. 플러그인을 업그레이드할 때마다 다시 실행하세요.

가져오기

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

API 한눈에 보기

메서드 설명
getPendingInvocations JavaScript가 준비되기 전에 대기열에 쌓인 호출을 반환합니다.
removePendingInvocation 핸들러에서 처리를 완료한 후 대기 중인 호출 하나를 제거합니다.
setEntityCatalog 지정된 타입 문자열에 대한 엔티티 카탈로그를 영구 저장합니다.
setHomeScreenShortcutItems 홈 화면 퀵 액션(UIApplicationShortcutItems)을 교체합니다.
indexSpotlightEntities 앱 도메인의 Spotlight 항목을 인덱싱합니다.
removeSpotlightEntities Spotlight 항목을 ID로 삭제합니다.
performAppleSchemaTemplate 알파 Apple 스키마 템플릿용 JavaScript 핸들러를 큐에 추가합니다.

예시

getPendingInvocations()

JavaScript가 준비되기 전에 대기열에 쌓인 호출을 반환합니다.

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

const result = await CapgoAppIntents.getPendingInvocations();
console.log(result);

removePendingInvocation()

핸들러에서 처리를 완료한 후 대기 중인 호출 하나를 제거합니다.

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.removePendingInvocation({ id: 'id-123' });

setEntityCatalog()

지정된 타입 문자열에 대한 엔티티 카탈로그를 영구 저장합니다.

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.setEntityCatalog({
  type: 'type',
  entries: [
    {
      id: 'id-123',
      title: 'Hello from Capacitor',
    },
  ],
});

setHomeScreenShortcutItems()

홈 화면 퀵 액션(UIApplicationShortcutItems)을 교체합니다.

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.setHomeScreenShortcutItems({
  items: [
    {
      type: 'type',
      title: 'Hello from Capacitor',
    },
  ],
});

indexSpotlightEntities()

앱 도메인의 Spotlight 항목을 인덱싱합니다.

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.indexSpotlightEntities({
  entities: [
    {
      id: 'id-123',
      title: 'Hello from Capacitor',
      actionName: 'action',
    },
  ],
});

removeSpotlightEntities()

Spotlight 항목을 ID로 삭제합니다.

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.removeSpotlightEntities({ ids: ['ids'] });

위 표에는 7가지 핵심 메서드가 나와 있습니다. 리스너와 버전 헬퍼, 각 메서드의 전체 스펙은 다음 문서에 정리되어 있습니다. GitHub 리포지토리.

이벤트 수신

addListener 핸들을 반환합니다. 호출하세요 handle.remove() 화면이 언마운트될 때, 또는 CapgoAppIntents.removeAllListeners() 모든 리스너를 해제하려면.

전체 레퍼런스

자주 묻는 질문

App Intents 플러그인 FAQ

Capacitor 앱에 App Intents 플러그인을 어떻게 설치하나요?

"bun add @capgo/capacitor-app-intents"(또는 "npm install @capgo/capacitor-app-intents")을 실행한 다음, "bunx cap sync"를 실행해 iOS와 Android 프로젝트가 네이티브 code를 인식하도록 하세요. 앱 code에서 "@capgo/capacitor-app-intents"에서 임포트하면 됩니다.

@capgo/capacitor-app-intents는 React, Vue, Angular와 호환되나요?

네. App Intents는 Capacitor 패키지라서 Ionic, React, Vue, Angular, Svelte는 물론 일반 JavaScript까지, Capacitor 안에서 실행되는 모든 웹 프레임워크와 호환됩니다.

@capgo/capacitor-app-intents은 어떤 Capacitor 버전을 지원하나요?

Capgo 플러그인은 Capacitor의 메이저 버전을 따릅니다. 사용 중인 Capacitor 메이저 버전과 일치하는 플러그인 메이저 버전을 사용하세요 (예: Capacitor 8에는 플러그인 v8). 유지 관리되는 버전은 GitHub README의 호환성 표에서 확인할 수 있습니다.

@capgo/capacitor-app-intents는 무료 오픈 소스인가요?

네. code 소스 코드는 GitHub의 https://github.com/Cap-go/capacitor-app-intents/에 공개되어 있고, npm에서 무료로 설치할 수 있습니다. 버그 리포트와 Pull Request는 언제나 환영합니다.

App Intents를 사용하는 code를 App Store 심사 없이 업데이트할 수 있나요?

플러그인을 설치하거나 업그레이드하면 네이티브 code가 변경되므로 새로운 스토어 빌드가 필요합니다. 그 이후에는 플러그인을 호출하는 JavaScript, HTML, CSS 변경 사항을 Capgo live updates로 즉시 배포할 수 있습니다.

앱 심사 대기 없이 App Intents 변경 사항 배포

스토어 빌드에 플러그인이 포함되면, Capgo live updates로 JavaScript, HTML, CSS 변경 사항을 몇 분 만에 사용자에게 푸시할 수 있습니다.

Capgo로 시작하기