시작하기
복사할 수 있는 지시
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-incoming-call-kit`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/incoming-call-kit/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
설치
설치 제목Capgo의 AI-Assisted Setup을 사용하여 플러그인을 설치할 수 있습니다. AI 도구에 Capgo 기능을 추가하려면 다음 명령어를 사용하세요:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins그다음에 다음 명령어를 사용하세요:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-incoming-call-kit` plugin in my project.만약 Manual Setup을 선호한다면, 플러그인을 설치하기 위해 다음 명령어를 실행하고 아래의 플랫폼별 지침을 따르세요:
-
설치 패키지를 설치하세요.
터미널 창 bun add @capgo/capacitor-incoming-call-kit -
자연 프로젝트를 동기화
터미널 창 bunx cap sync -
벨 소스를 선택하세요. incoming-call 이벤트가 백엔드, SDK (예: Twilio 또는 Stream) 또는 원시 푸시 경로 (예: FCM 또는 PushKit)에서 오는지 결정하세요.
통합이 어떻게 맞물리는지
제목 ‘통합이 어떻게 맞물리는지’이 플러그인은 자연 incoming-call 표시만 관리합니다. 앱은 여전히 전송, 인증, 그리고 실제 미디어 세션을 관리합니다.
생산 환경에서 일반적인 패턴은 다음과 같습니다.
- 백엔드 또는 호출 SDK가 ring 이벤트를 방출합니다.
- 앱이 호출합니다.
showIncomingCall(). - 플러그인이 원시 incoming-call UI를 제공합니다.
callAccepted실제 회의실 또는 VoIP 세션에 앱을 참여시킵니다.callDeclined,callEnded또는callTimedOut원격 상태를 정리하기 위해 앱에게 지시합니다.
최소한의 통합
제목 ‘최소한의 통합’import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.requestPermissions();await IncomingCallKit.requestFullScreenIntentPermission();
await IncomingCallKit.addListener('callAccepted', async ({ call }) => { console.log('Accepted', call.callId, call.extra); // Start or join your real call session here.});
await IncomingCallKit.addListener('callDeclined', ({ call }) => { console.log('Declined', call.callId); // Tell your backend or SDK that the user declined.});
await IncomingCallKit.addListener('callTimedOut', ({ call }) => { console.log('Timed out', call.callId); // Clear ringing state in your backend or SDK.});
await IncomingCallKit.showIncomingCall({ callId: 'call-42', callerName: 'Ada Lovelace', handle: '+39 555 010 020', appName: 'Capgo Phone', hasVideo: true, timeoutMs: 45_000, extra: { roomId: 'room-42', callerUserId: 'user_ada', }, android: { channelId: 'calls', channelName: 'Incoming Calls', showFullScreen: true, }, ios: { handleType: 'phoneNumber', },});중요한 옵션
제목 ‘중요한 옵션’callId: stable identifier 재사용endCall()timeoutMs: 최선을 다하는 답변 시간 초과extra: 리스너 페이로드에서 임의의 JSON이 반영됩니다.android.channelIdandandroid.channelNameandandroid.showFullScreen: 안드로이드 알림 채널 조정ios.handleType: choosegeneric,phoneNumber: 선택emailAddress, 또는
CallKit
활성 호출 관리const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({ callId: 'call-42', reason: 'remote-ended',});
await IncomingCallKit.endAllCalls({ reason: 'session-reset',});복사
이벤트 모델incomingCallDisplayed: 네이티브 UI가 성공적으로 표시되었습니다.callAccepted: 사용자가 네이티브 UI에서 수락했습니다.callDeclined: 사용자가 참여하기 전에 거절했습니다.callEnded: 사용자의 앱 또는 플랫폼이 추적된 통화를 종료했습니다.callTimedOut: 통화는timeoutMs
: 이벤트는 정규화된 call 및 원본 extra 을 포함합니다.
플랫폼 참고 사항
참고 사항- 스타일 가이드를 읽어보세요. iOS 가이드 PushKit 또는 APNs 흐름에 CallKit을 연결하기 전에.
- 스타일 가이드를 읽어보세요. Android 가이드 Android 14 이상에서 전체 화면 인텐트에 의존하기 전에.
- 웹은 지원되지 않습니다.
시작하기
시작하기Capgo를 사용하여 대시보드와 __CAPGO_KEEP_0__ 작업을 계획하고 있다면, __CAPGO_KEEP_0__와 __CAPGO_KEEP_1__-incoming-call-kit을 연결하세요. 시작하기 계획 대시보드와 API 운영을 계획하고 연결하려면 Using @capgo/capacitor-incoming-call-kit Capgo의 내장 기능을 사용하기 위해 @capgo/capacitor-incoming-call-kit API 개요 Capgo의 구현 세부 정보를 위한 API 개요 소개 소개의 구현 세부 정보를 위한 __CAPGO_KEEP_0__ API 키 API 키의 구현 세부 정보와 함께 장치 장치의 구현 세부 정보를 위한