내용으로 건너뛰기

iOS

iOS 동작 방식

iOS 동작 방식

iOS에서 플러그인은 incoming call을 CallKit에 보고합니다. 그로 인해 시스템 incoming-call sheet 및 표준화된 call actions을 제공합니다. native incoming-call UI를 직접 구축하지 않아도 됩니다.

requestPermissions() iOS에서 CallKit 자체가 runtime permission dialog를 요구하지 않기 때문에 즉시 해결됩니다.

기본 예제

기본 예제
import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.showIncomingCall({
callId: 'call-42',
callerName: 'Ada Lovelace',
handle: '+1 555 010 020',
ios: {
handleType: 'phoneNumber',
supportsHolding: true,
supportsDTMF: false,
},
});

Handle 유형

기능

CallKit이 handle을 어떻게 형식화하는지 제어하기 위해 사용합니다. ios.handleType app-specific identifiers를 위해

  • generic app-specific identifiers를 위해
  • phoneNumber 실제 전화번호
  • emailAddress 이메일 기반 식별자

배경 incoming calls

배경 incoming calls 섹션

이 플러그인은 PushKit 또는 APNs를 등록하지 않습니다.

iOS에서 실제 배경 또는 종료된 상태의 링을 위해, 호스트 앱은 여전히 native Apple push 설정이 필요합니다. 이 설정은 transport 전략에 맞춰야 합니다.:

  1. Apple push 전달을 사용하는 transport가 있는 경우 Push Notifications를 활성화하세요.
  2. VoIP push flow를 사용하는 앱이면 Voice over IP 배경 모드를 활성화하세요.
  3. Capacitor 브릿지가 사용 가능한 즉시 incoming-call 이벤트를 앱에 전달하고 이 플러그인을 호출하세요.

앱이 이미 전면에서 실행 중일 때, JavaScript에서만 링 이벤트가 존재한다면, 최상의 경험을 얻을 수 있습니다.

마이크 및 카메라 권한

마이크 및 카메라 권한 섹션

CallKit은 미디어 SDK을 대체하지 않습니다. 실제 통화 세션에서 마이크 또는 카메라 접근이 사용되는 경우, 사용 설명이 여전히 앱에 속해야 합니다.

<key>NSMicrophoneUsageDescription</key>
<string>This app uses the microphone for calls.</string>
<key>NSCameraUsageDescription</key>
<string>This app uses the camera for video calls.</string>

실제 통화 흐름에서만 필요한 키만 추가하세요.

이러한 책임은 앱层에서 유지하세요.

Section titled “이러한 책임은 앱层에서 유지하세요.”
  • PushKit 및 APNs 등록
  • 인증 및 토큰 갱신
  • 플러그인으로부터 방 또는 VoIP 세션에 참가할 때 callAccepted
  • 플러그인이 방 또는 VoIP 세션을 종료하거나 원격 통화 상태를 일치시키는 경우 callDeclined, callEnded편집 페이지 callTimedOut