Zum Inhalt springen

iOS

Auf iOS meldet der Plugin den eingehenden Anruf bei CallKit. Das gibt Ihnen das Systemeingehungsanrufblatt und standardisierte Anrufaktionen ohne das eigene native eingehende Anruf-UI zu erstellen.

requestPermissions() wird sofort auf iOS gelöst, weil CallKit selbst keine Laufzeitberechtigungsanfrage-Dialog erfordert.

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 ios.handleType um zu bestimmen, wie CallKit den Handle formatiert:

  • generic für app-spezifische Identifikatoren
  • phoneNumber für echte Telefonnummern
  • emailAddress für Identitäten auf der Grundlage von E-Mails

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

Für wahrhaftigen Hintergrund- oder beendeten Zustand des Klingelns auf iOS benötigt Ihre Host-App immer noch die native Apple-Push-Einrichtung, die Ihrem Transport-Strategie entspricht:

  1. Aktivieren Sie Push-Benachrichtigungen, wenn Ihr Transport Apple-Push-Lieferungen verwendet.
  2. Aktivieren Sie den Voice-over-IP-Hintergrundmodus, wenn Ihre App eine VoIP-Push-Fluss verwendet.
  3. Liefern Sie das eingehende Anrufereignis an Ihre App und laden Sie diesen Plugin so schnell wie möglich, 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.

CallKit ersetzt Ihre Medien SDK nicht. Wenn die echte Anrufssitzung Mikrofon- oder Kamera-Zugriff verwendet, gehören diese Nutzungserklärungen 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 Verantwortlichkeiten in Ihrer App-Schicht

Abschnitt mit dem Titel „Behalten Sie diese Verantwortlichkeiten in Ihrer App-Schicht“
  • PushKit- und APNs-Registrierung
  • Authentifizierung und Aktualisierung von Token
  • Zum Beitritt zum realen Raum oder zum VoIP-Sitzung nach callAccepted
  • Beendigung oder Rekonfiguration des Remoteaufrufs, wenn der Plugin ausgibt callDeclined, callEnded oder callTimedOut