Lompat ke konten

Getting Started

GitHub

Anda dapat menggunakan Pengaturan Asisten AI kami untuk menginstal plugin. Tambahkan Capgo kemampuan ke alat AI Anda menggunakan perintah berikut:

Jendela Terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Lalu 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 Anda lebih suka Setup Manual, instal plugin dengan menjalankan perintah-perintah berikut dan ikuti instruksi spesifik platform di bawah ini:

  1. Pasang paket

    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.

Bagaimana integrasi ini berfungsi bersama-sama

Bagian berjudul “Bagaimana integrasi ini berfungsi bersama-sama”

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

Polanya produksi umum adalah:

  1. Backend Anda atau panggilan SDK mengeluarkan event panggilan.
  2. Aplikasi Anda memanggil showIncomingCall().
  3. Plugin menampilkan UI panggilan masuk native.
  4. callAccepted menginformasikan aplikasi Anda untuk bergabung dengan ruang nyata atau sesi VoIP.
  5. callDeclined, callEnded, atau 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: waktu tunggu yang berusaha sebaik mungkin tetapi tidak dijawab
  • extra: JSON acak yang dikembalikan dalam payload pendengar
  • android.channelId dan android.channelName: pengaturan saluran notifikasi Android
  • android.showFullScreen: meminta aktivitas panggilan masuk penuh layar Android
  • ios.handleType: pilih 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 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

Setiap acara membawa payload yang dinormalisasi call dan objek asli Anda. extra Catatan Platform

Judul Bagian “Catatan Platform”

__CAPGO_KEEP_0__
  • Baca panduan iOS sebelum menghubungkan CallKit ke dalam aliran PushKit atau APNs.
  • Baca panduan Android sebelum mengandalkan intent layar penuh pada Android 14 dan seterusnya.
  • Web tidak didukung.

Jika Anda menggunakan Getting Started untuk merencanakan dashboard dan API operasi, hubungkannya dengan Menggunakan @capgo/capacitor-kit panggilan masuk asli untuk kemampuan asli dalam Menggunakan @capgo/capacitor-kit panggilan masuk asli 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 dalam Perangkat.