Lompat ke konten

Getting Started

GitHub
  1. Siap untuk dipasang dengan AI

    Jendela terminal
    bun add @capgo/capacitor-incoming-call-kit
  2. Sinkronkan proyek native

    Jendela terminal
    bunx cap sync
  3. Pilih sumber ring Anda Putuskan apakah event panggilan masuk berasal dari backend Anda, sebuah SDK seperti Twilio atau Stream, atau jalur push native seperti FCM atau PushKit.

Plugin ini hanya mengelola presentasi panggilan masuk native. Aplikasi Anda masih mengelola transportasi, autentikasi, dan sesi media yang sebenarnya.

Polanya produksi yang umum adalah:

  1. Backend Anda atau SDK panggilan memancarkan event ring.
  2. Aplikasi Anda memanggil showIncomingCall().
  3. Plugin menampilkan UI panggilan masuk asli.
  4. callAccepted menginformasikan aplikasi Anda untuk bergabung dengan ruang nyata atau sesi VoIP.
  5. callDeclined, callEndedatau callTimedOut menginformasikan aplikasi Anda untuk membersihkan status remote.
import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.requestPermissions();
await IncomingCallKit.requestFullScreenIntentPermission();
await IncomingCallKit.addListener('callAccepted', async ({ call }) => {
console.log('Accepted', call.callId, call.extra);
// Start or join your real call session here.
});
await IncomingCallKit.addListener('callDeclined', ({ call }) => {
console.log('Declined', call.callId);
// Tell your backend or SDK that the user declined.
});
await IncomingCallKit.addListener('callTimedOut', ({ call }) => {
console.log('Timed out', call.callId);
// Clear ringing state in your backend or SDK.
});
await IncomingCallKit.showIncomingCall({
callId: 'call-42',
callerName: 'Ada Lovelace',
handle: '+39 555 010 020',
appName: 'Capgo Phone',
hasVideo: true,
timeoutMs: 45_000,
extra: {
roomId: 'room-42',
callerUserId: 'user_ada',
},
android: {
channelId: 'calls',
channelName: 'Incoming Calls',
showFullScreen: true,
},
ios: {
handleType: 'phoneNumber',
},
});
  • callId: identifikasi stabil yang digunakan kembali kemudian dengan endCall()
  • timeoutMs: batasan waktu tidak terjawab dengan upaya terbaik
  • extraDitampilkan secara acak dalam pesan balasan pengguna
  • android.channelId dan android.channelNamePengaturan saluran notifikasi Android
  • android.showFullScreenMinta aktivitas panggilan masuk layar penuh Android
  • ios.handleTypePilih generic, phoneNumber, atau emailAddress untuk CallKit
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});
  • incomingCallDisplayed: UI native ditampilkan dengan sukses
  • callAccepted: pengguna menerima dari UI native
  • callDeclined: pengguna menolak sebelum bergabung
  • callEnded: aplikasi Anda atau platform mengakhiri panggilan yang sedang diikuti
  • callTimedOut: panggilan tetap tidak dijawab sampai timeoutMs

Setiap event membawa payload yang dinormalisasi dan objek asli Anda. call Catatan Platform extra Baca panduan iOS

Baca panduan iOS

Baca panduan iOS

Jika Anda menggunakan Getting Started untuk merencanakan dashboard dan __CAPGO_KEEP_0__ operasi, hubungkannya dengan

Menggunakan @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-incoming-call-kit

untuk kemampuan asli di Menggunakan @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-incoming-call-kit Read the to plan dashboard and API operations, connect it with Using @capgo/capacitor-incoming-call-kit for the native capability in Using @capgo/capacitor-incoming-call-kit, Ringkasan API untuk detail implementasi di Ringkasan API Pendahuluan untuk detail implementasi di Pendahuluan API Kunci untuk detail implementasi di API Kunci, dan Perangkat untuk detail implementasi di Perangkat.