Lebih cepat ke konten

Mulai Menggunakan

GitHub

Kamu bisa menggunakan Setup Bantuan AI untuk menginstal plugin. Tambahkan Capgo kemampuan ke alat AI kamu menggunakan perintah berikut:

Tampilan jendela terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Kemudian gunakan prompt berikut:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-incoming-call-kit` plugin in my project.

Jika kamu lebih suka Setup Manual, instal plugin dengan menjalankan perintah-perintah berikut dan ikuti instruksi spesifik platform di bawah ini:

  1. Install the package

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

    Jendela terminal
    bunx cap sync
  3. Pilih sumber suara 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 panggilan SDK mengeluarkan event ring.
  2. Aplikasi Anda memanggil showIncomingCall().
  3. Plugin menampilkan UI panggilan masuk native.
  4. callAccepted Menghubungi ruang atau sesi VoIP sebenarnya.
  5. callDeclined, callEnded, atau callTimedOut Mengosongkan sisa data jarak jauh.
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 nanti endCall()
  • timeoutMsWaktu tunggu tidak dijawab dengan upaya terbaik
  • extraJSON acak yang dikembalikan dalam payload pendengar
  • android.channelId dan android.channelNameWaktu pengaturan saluran Android
  • android.showFullScreenMengajukan aktivitas panggilan masuk Android penuh layar
  • ios.handleTypePilih generic, phoneNumber, atau emailAddress untuk Kit Panggilan
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});
  • incomingCallDisplayed: UI asli ditampilkan dengan sukses
  • callAccepted: pengguna menerima dari UI asli
  • callDeclined: pengguna menolak sebelum bergabung
  • callEnded: aplikasi Anda atau platform mengakhiri panggilan yang sedang diikuti
  • callTimedOut: panggilan tetap tidak dijawab hingga timeoutMs

Each event carries the normalized call payload dan aslinya extra object.

Catatan Platform

Baca Panduan gaya kami
  • Read the Petunjuk iOS sebelum menghubungkan CallKit ke dalam aliran PushKit atau APNs.
  • Baca Petunjuk Android sebelum mengandalkan niat intents layar penuh pada Android 14 dan seterusnya.
  • Petunjuk Android

Lanjutkan dari Getting Started Mulai Menggunakan Untuk merencanakan dashboard dan operasi API, hubungkannya dengan Menggunakan @capgo/capacitor-kit Panggilan Masuk untuk kemampuan asli dalam Menggunakan @capgo/capacitor-kit panggilan masuk, API Ringkasan untuk detail implementasi dalam API Ringkasan, Pendahuluan untuk detail implementasi dalam Pendahuluan, API Kunci untuk detail implementasi dalam API Kunci, dan Perangkat Untuk detail implementasi di Perangkat.