Lompat ke konten

iOS

Pada iOS, plugin melaporkan panggilan masuk ke CallKit. Hal itu memberikan Anda lembaran panggilan masuk sistem dan aksi panggilan standar tanpa harus membangun UI panggilan masuk native sendiri.

requestPermissions() terpecah segera pada iOS karena CallKit itu sendiri tidak memerlukan dialog izin waktu eksekusi.

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

Gunakan ios.handleType untuk mengontrol bagaimana CallKit mengatur handle:

  • generic untuk identifikasi aplikasi khusus
  • phoneNumber untuk nomor telepon yang sebenarnya
  • emailAddress untuk identitas berbasis email

Plugin ini tidak mendaftarkan PushKit atau APNs untuk Anda.

Untuk getaran yang sebenarnya di latar belakang atau dalam keadaan dihentikan pada iOS, aplikasi host Anda masih memerlukan pengaturan push native Apple yang sesuai dengan strategi transportasi Anda:

  1. Aktifkan Notifikasi Push ketika transportasi Anda menggunakan pengiriman push Apple.
  2. Aktifkan mode latar belakang VoIP ketika aplikasi Anda menggunakan aliran push VoIP.
  3. Kirimkan event panggilan masuk ke aplikasi Anda dan panggil plugin ini segera setelah jembatan Capacitor tersedia.

Jika event getaran Anda hanya ada di JavaScript, Anda akan mendapatkan pengalaman terbaik ketika aplikasi sudah berjalan di latar depan.

CallKit tidak menggantikan media SDK. Jika sesi panggilan nyata menggunakan akses mikrofon atau kamera, deskripsi penggunaan masih harus ada di aplikasi Anda:

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

Tambahkan hanya kunci yang aliran panggilan nyata Anda membutuhkan.

Tetapkan tanggung jawab ini di lapisan aplikasi Anda

Judul bagian “Tetapkan tanggung jawab ini di lapisan aplikasi Anda”
  • Pendaftaran PushKit dan APNs
  • Autentikasi dan pembaruan token
  • Masuk ke ruang nyata atau sesi VoIP setelah callAccepted
  • Mengakhiri atau menyelesaikan status panggilan remote ketika plugin memancarkan callDeclined, callEndedatau callTimedOut