Skip to content

Getting Started

GitHub
  1. パッケージをインストール

    ターミナル画面
    bun add @capgo/capacitor-incoming-call-kit
  2. ネイティブプロジェクトを同期

    ターミナル画面
    bunx cap sync
  3. Ringのソースを選択 着信イベントが来るのは、バックエンドから、SDKのようなTwilioまたはStreamから、またはネイティブのプッシュパスからFCMまたはPushKitから来るかどうかを決定します。

このプラグインは、ネイティブの着信表示のみを所有します。アプリは依然としてトランスポート、認証、実際のメディアセッションを所有します。

一般的なプロダクションパターンは:

  1. あなたのバックエンドまたはSDKがRingイベントを発行します。
  2. あなたのアプリが showIncomingCall().
  3. プラグインは、Incoming CallのネイティブUIを提示します。
  4. callAccepted 実際のルームまたはVoIPセッションにアプリを参加させるように
  5. 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リスナー パayload に反映される任意の JSON
  • android.channelId かつ android.channelNameAndroid 通知 チャネル調整
  • android.showFullScreenAndroid のフルスクリーンIncomingCallアクティビティを要求
  • ios.handleType選択 generic, phoneNumber、または emailAddress CallKitのために

アクティブな通話の管理

アクティブな通話の管理
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 ガイド __CAPGO_KEEP_0__ を PushKit または APNs フローに組み込む前に、CallKit について学びましょう。
  • Read the Android ガイド Android 14 以降でフルスクリーン インテントに依存する場合は、まず Android ガイドを読んでください。
  • Web はサポートされていません。

Getting Started から続けてください。

Getting Started から続けてください。

計画ダッシュボードと __CAPGO_KEEP_0__ 操作を実行する場合は、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-incoming-call-kit を使用して接続してください。 Getting Started to plan dashboard and API operations, connect it with Using @capgo/capacitor-incoming-call-kit @capgo/capacitor-incoming-call-kitのネイティブ機能 APIの概要 @API/__CAPGO_KEEP_1__-incoming-call-kitの実装詳細 導入 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-incoming-call-kitの実装詳細 @APIのキー @API/__CAPGO_KEEP_1__-incoming-call-kitの実装詳細と デバイス @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-incoming-call-kitの実装詳細