Getting Started
このプラグインの全体のマークダウンガイドとインストールステップを含むセットアッププロンプトをコピーしてください。
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-incoming-call-kit`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/incoming-call-kit/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
インストール
「インストール」のセクションAI-Assisted Setupを使用してプラグインをインストールできます。AIツールにCapgoスキルを追加するには、以下のコマンドを使用してください。
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins次のプロンプトを使用してください。
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-incoming-call-kit` plugin in my project.Manual Setupを使用する場合は、以下のコマンドを実行してプラグインをインストールし、下記のプラットフォーム固有の手順に従ってください。
-
パッケージをインストール
ターミナル画面 bun add @capgo/capacitor-incoming-call-kit -
ネイティブプロジェクトを同期
ターミナル画面 bunx cap sync -
リングソースを選択 incoming-callイベントが、バックエンドから来るか、SDKであるTwilioやStream、またはネイティブプッシュパスであるFCMやPushKitから来るかを決定する
統合の構成
「統合の構成」このプラグインは、ネイティブの着信表示のみを管理します。アプリは、通信、認証、実際のメディアセッションを管理します。
一般的な実用パターンは次のとおりです。
- バックエンドまたは呼び出しSDKがリングイベントを発行します。
- アプリは呼び出しします
showIncomingCall(). - プラグインはネイティブの着信UIを表示します。
callAcceptedアプリに実際のルームまたはVoIPセッションに参加するように指示します。callDeclined,callEnded、またはcallTimedOutアプリにリモート状態をクリーンアップするように指示します。
最小限の統合
コピー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: その後再利用される安定した識別子endCall()timeoutMs: 最善の努力で未回答のタイムアウトextra: リスナーパイロード内の任意のJSONがエコーされるandroid.channelIdそしてandroid.channelName: Android 通知チャンネルの調整android.showFullScreen: Android のフルスクリーンIncomingCallアクティビティを要求するios.handleType: 選択generic,phoneNumber: またはemailAddressCallKitのための
アクティブなコールの管理
アクティブなコールの管理const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({ callId: 'call-42', reason: 'remote-ended',});
await IncomingCallKit.endAllCalls({ reason: 'session-reset',});イベントモデル
セクション「イベントモデル」incomingCallDisplayed:ネイティブUIが正常に表示されましたcallAccepted:ユーザーがネイティブUIから承認しましたcallDeclined:ユーザーが参加前に拒否しましたcallEnded:アプリまたはプラットフォームがトラッキングされたコールを終了しましたcallTimedOut:コールは回答されませんでしたtimeoutMs
:コールは回答されませんでした call 各イベントには、正規化された extra ペイロードと元の
オブジェクトが含まれます。
プラットフォームに関する注意事項- スタイルガイドを読みます。 iOSガイド PushKitまたはAPNsフローにCallKitを組み込む前に
- スタイルガイドを読みます。 Androidガイド Android 14以降のフルスクリーンインテントに頼る前に
- Webはサポートされていません。
Getting Startedから続けてください。
CapgoのGetting Startedを使用している場合Getting Started CapgoのGetting Started を計画するダッシュボードとAPIの作業を接続する Using @capgo/capacitor-incoming-call-kit Using @capgo/capacitor-incoming-call-kitのネイティブ機能 APIの概要 APIの概要の実装詳細 導入 導入の実装詳細 APIのキー APIのキーと実装詳細 デバイス デバイスの実装詳細