Getting Started
이 플러그인에 대한 설치 단계와 전체 마크다운 가이드를 포함한 설정 지시를 복사하십시오.
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.
설치
설치 제목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.channelId또는android.channelName: 안드로이드 알림 채널 조정android.showFullScreen: 안드로이드 전면 incoming-call 액티비티 요청ios.handleType: 선택generic,phoneNumber, 또는emailAddressfor 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 이상에서 풀 스크린 인텐트에 의존하기 전에 이 가이드를 읽으십시오.
- 웹은 지원되지 않습니다.
Getting Started에서 계속하기
참고 사항: Getting Started에서 계속하기Getting Started를 사용하는 경우 Getting Started API 대시보드를 계획하고 API 운영을 위해 연결하세요. Using @capgo/capacitor-incoming-call-kit capgo에서 사용하는 @capgo/capacitor-incoming-call-kit API 개요 API의 구현 세부 사항에 대해 알아보세요. 소개 소개의 구현 세부 사항에 대해 알아보세요. API 키 API 키의 구현 세부 사항에 대해 알아보세요. 장치 장치의 구현 세부 사항에 대해 알아보세요.