Zum Inhalt springen

iOS

GitHub

So funktioniert das iOS-Verhalten

Abschnitt „So funktioniert das iOS-Verhalten“

Unter iOS meldet das Plugin den eingehenden Anruf an CallKit. So erhältst du das systemeigene Anruf-Overlay und standardisierte Anrufaktionen, ohne eine eigene native UI für eingehende Anrufe bauen zu müssen.

requestPermissions() wird unter iOS sofort aufgelöst, da CallKit selbst keinen Berechtigungsdialog zur Laufzeit benötigt.

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

Nutzt ios.handleType um zu steuern, wie CallKit das Handle formatiert:

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

Dieses Plugin registriert PushKit oder APNs nicht für dich.

Für echtes Klingeln im Hintergrund oder im beendeten Zustand unter iOS braucht deine Host-App weiterhin das native Apple-Push-Setup, das zu deiner Transportstrategie passt:

  1. Aktiviere Push Notifications, wenn dein Transport Apple-Push-Zustellung nutzt.
  2. Aktiviere den Voice over IP Background Mode, wenn deine App einen VoIP-Push-Flow nutzt.
  3. Leite das Incoming-Call-Event an deine App weiter und rufe dieses Plugin auf, sobald die Capacitor Bridge verfügbar ist.

Wenn dein Ring-Event nur in JavaScript existiert, funktioniert es am besten, solange die App im Vordergrund läuft.

CallKit ersetzt nicht dein Media SDK. Wenn die eigentliche Call-Session auf Mikrofon oder Kamera zugreift, gehören diese Usage Descriptions weiterhin in deine 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üge nur die Keys hinzu, die dein Anruf-Flow wirklich benötigt.

  • PushKit- und APNs-Registrierung
  • Authentifizierung und Token-Refresh
  • Beitreten des echten Raums oder der VoIP-Session im Anschluss callAccepted
  • Beenden oder Abgleichen des Remote-Call-Status bei Plugin-Events callDeclined, callEnded, oder callTimedOut

Wenn du es nutzt iOS Um die Arbeit an nativen Plugins zu planen, verbinde sie mit @capgo/capacitor-incoming-call-kit verwenden für die native Funktion bei der Nutzung von @capgo/capacitor-incoming-call-kit, Capgo Plugin-Verzeichnis für den Produkt-Workflow im Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo für das Implementierungsdetail in Capacitor Plugins von Capgo, Plugins hinzufügen oder aktualisieren für das Implementierungsdetail beim Hinzufügen oder Aktualisieren von Plugins, und Ionic Enterprise Plugin-Alternativen für den Produkt-Workflow bei den Ionic Enterprise Plugin-Alternativen.