快速入门
复制包含安装步骤和该插件完整 Markdown 指南的配置 prompt。
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 辅助设置来安装插件。使用以下命令将 Capgo skills 添加到你的 AI 工具中:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins然后使用以下 prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-incoming-call-kit` plugin in my project.如果你更想手动设置,请运行以下命令安装插件,并按照下方各平台的说明操作:
-
安装软件包
终端窗口 bun add @capgo/capacitor-incoming-call-kit -
同步原生项目
终端窗口 bunx cap sync -
选择来电来源 确定 incoming-call 事件是来自您的后端、SDK(例如 Twilio 或 Stream),还是来自 FCM 或 PushKit 等原生推送路径。
快速入门
章节标题为“快速入门”import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
const result = await IncomingCallKit.showIncomingCall({ callId: 'call-id-123', callerName: 'caller',});console.log(result);示例:endCall
“示例:endCall”章节import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
const result = await IncomingCallKit.endCall({ callId: 'call-id-123' });console.log(result);示例:endAllCalls
“示例:endAllCalls”章节import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
const result = await IncomingCallKit.endAllCalls();console.log(result);常见坑点
章节标题为“常见陷阱”- 权限: 调用
checkPermissions()然后requestPermissions()在需要时。 - 监听器: 在页面卸载时移除句柄。
- 唯一可信来源:信任
src/definitions.ts在 GitHub 仓库中。
集成如何协同工作
“集成工作原理”章节此插件仅负责原生来电界面的展示。您的应用仍需负责传输、身份验证以及实际的媒体会话。
常见的生产环境模式如下:
- 您的后端或通话 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: 监听器 payload 中回显的任意 JSONandroid.channelId以及android.channelName: Android 通知渠道调优android.showFullScreen: 请求 Android 全屏来电 Activityios.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 payload 以及您原始的 extra object。
平台说明
“平台注意事项”章节- 阅读 iOS 指南 在将 CallKit 集成到 PushKit 或 APNs 流程之前。
- 阅读 Android 指南 在 Android 14 及更高版本使用全屏意图 (full-screen intents) 之前。
- 暂不支持 Web 端。
从入门指南继续
“从入门指南继续”章节如果你正在使用 快速入门 要规划 dashboard 和 API 操作,请将其连接到 使用 @capgo/capacitor-incoming-call-kit 用于“使用 @capgo/capacitor-incoming-call-kit”中的原生功能, API 概览 关于 API Overview 中的实现细节, 简介 关于 Introduction 中的实现细节, API 密钥 有关 API Keys 的实现细节,以及 设备 有关 Devices 的实现细节。