Zum Inhalt springen

iOS

Auf iOS meldet das Plugin den eingehenden Anruf bei CallKit. Dadurch erhalten Sie das Systemeingehende-Anruf-Blatt und standardisierte Anrufaktionen ohne die eigene native eingehende-Anruf-UI zu erstellen.

requestPermissions() Auf iOS wird sofort gelöst, weil CallKit selbst keine Laufzeitgenehmigungsanfrage anfordert.

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,
},
});

Verwenden Sie ios.handleType um festzulegen, wie CallKit den Handle formatiert:

  • generic für Anwendungs-spezifische Identifikatoren
  • phoneNumber für reale Telefonnummern
  • emailAddress für E-Mail-basierte Identitäten

Diese Erweiterung registriert PushKit oder APNs nicht für Sie.

Für echte Hintergrund- oder beendete Zustandsklingeln auf iOS benötigt Ihre Host-App immer noch die native Apple-Push-Einrichtung, die Ihren Transportstrategie entspricht:

  1. Push-Nachrichten aktivieren, wenn Ihr Transport Apple-Push-Lieferung verwendet.
  2. Aktivieren Sie die Voice-over-IP-Hintergrundmodus, wenn Ihre App eine VoIP-Push-Fluss verwendet.
  3. Liefert die eingehende Anrufereignis an Ihre App und rufen Sie diesen Plugin auf, sobald die Capacitor-Brücke verfügbar ist.

Wenn Ihr Klingelereignis nur in JavaScript existiert, erhalten Sie die beste Erfahrung, während die App bereits im Vordergrund läuft.

Mikrofon- und Kamera-Berechtigungen

Abschnitt "Mikrofon- und Kamera-Berechtigungen"

CallKit ersetzt Ihre Medien SDK. Wenn die echte Anrufsession Mikrofon- oder Kamera-Zugriff verwendet, gehören diese Verwendungsbeschreibungen immer noch zu Ihrer App:

<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>

Fügen Sie nur die Schlüssel hinzu, die Ihre echte Rufanfrage benötigt.

Behalten Sie diese Verantwortung in Ihrer App-Schicht

Abschnitt "Behalten Sie diese Verantwortung in Ihrer App-Schicht"
  • PushKit und APNs-Registrierung
  • Authentifizierung und Token-Refresh
  • Betreten des echten Raums oder VoIP-Sitzung nach callAccepted
  • Beenden oder Rekonfigurieren des Remoteaufrufs, wenn der Plugin ausgibt callDeclined, callEnded oder callTimedOut