@capgo/capacitor-incoming-call-kit

中文文档
8.2.14发布于 2026/10/15MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 5911

安卓全屏通知和iOS CallKit为本地来电的UI插件.

中文使用文档
文档目录31 节
  1. *免费开始*
  2. 主要特点
  3. 文档
  4. 兼容性
  5. 安装
  6. 此插件会做什么
  7. 此插件不会做什么
  8. 快速启动
  9. 事件模型
  10. 平台说明
  11. 机器人
  12. iOS系统
  13. 选择建筑
  14. 示例应用
  15. API 密码
  16. 显示来电(...)
  17. 端点呼叫(...)
  18. 终极呼叫(...)
  19. 获取 AactiveCalls ()
  20. 检查( )
  21. 请求( )
  22. 请求FullScreen IntentPermission ()
  23. 获取 PluginVersion ()
  24. 添加倾听器( 'callDisplayed',...)
  25. 添加收听器( “ 收听) ,...)
  26. 添加倾听器( “ callDeclined ” ,...)
  27. 添加倾听器( “ called End” ,...)
  28. 添加倾听器( “ callTimed Out” ,...)
  29. 删除所有收听器( )
  30. 接口
  31. 类型异名

@ capgo/ 电容- coming- call- kit

从您的 Capacitor app 显示本地收到的呼叫屏幕: CallKit 在 iOS 上显示, 在 Android 上显示高优先级通知, 可以打开全屏幕的呼叫屏幕 。 给用户拨打VoIP电话,视频通话和需要回答的提示.

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-incoming-call-kit 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/电容-capor-incoming-call-kit到我的电容软件上 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-incoming-call-kit for Capacitor apps

主要特点

  • 来电UI数字 : showIncomingCall() 显示本地铃声屏幕.
  • 调用事件数字 : callEnded, (中文(简体) ), callTimedOut 财务报告和审定财务报表 incomingCallDisplayed 听众,加 callAccepted 财务报告和审定财务报表 callDeclined 在iOS和Android上.
  • 电话跟踪数字 : getActiveCalls(), (中文(简体) ), endCall() 财务报告和审定财务报表 endAllCalls()。 。 。 .
  • 权限数字 : checkPermissions(), (中文(简体) ), requestPermissions() 财务报告和审定财务报表 requestFullScreenIntentPermission() 为Android 14 和以后.
  • 平台: iOS和Android. 互联网档案馆的存檔,存档日期2013-12-22. iOS使用CallKit. 互联网档案馆的存檔,存档日期2014-12-21. Android使用高优先级通知,可以引起全屏活性. Web是一个基本支点.

在 Capacitor 中显示一个本地接通的表面,带有Android全屏通知和iOS CallKit.

这个插件是为想要在相同空间中找到东西的团队而建的 奥拉雷瓦朱凯莫普/电容-来电-吻合,但是用一个小的 API, 键入事件, 更清晰的平台边界, 和文档, 你实际上可以从.

文档

这里有最完整的医生: https://capgo.app/docs/plugins/incoming-call-kit/ 互联网档案馆的存檔,存档日期2013-12-02

兼容性

插件版本电容兼容性维护
联合国联合国✅
页:1页:1应要求
页:1页:1❌

说明: 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的电容安装的版本 。 只有最新的主要版本得到积极维护.

安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

然后使用下列提示:

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

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

bun add @capgo/capacitor-incoming-call-kit
bunx cap sync

此插件会做什么

  • 显示来自 JavaScript 的本地呼叫 UI .
  • 释放缓冲 callAccepted, (中文(简体) ), callDeclined, (中文(简体) ), callEnded,以及 callTimedOut 所以如果桥冷的话 行动还是会到达JS的.
  • 使用Android通知加上全屏活动.
  • 使用 iOS CallKit 系统来电表.
  • 使推力运输脱离范围,从而可以将它接通到自己的FCM,PushKit,SIP或后端流.

此插件不会做什么

  • 它不为你注册FCM,APN,或PushKit.
  • 它不创建或管理基本的音频/视频会话.
  • 它不会取代你的VoIP SDK。 它只处理本土来电演示层.

快速启动

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);
  // Join your voice/video session here.
});

await IncomingCallKit.addListener('callDeclined', ({ call }) => {
  console.log('Declined:', call.callId);
});

await IncomingCallKit.addListener('callTimedOut', ({ call }) => {
  console.log('Timed out:', call.callId);
});

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',
  },
});

事件模型

  • incomingCallDisplayed: 本地 UI 已成功显示 .
  • callAccepted:用户接受本地UI.
  • callDeclined:用户在加入前就拒绝了.
  • callEnded:您的应用程序或平台结束了跟踪呼叫.
  • callTimedOut:电话一直没有答复,直到 timeoutMs。 。 。 .

每个事件都有正常的 call 载荷和原载 extra 对象.

平台说明

机器人

  • requestPermissions() 请求 POST_NOTIFICATIONS 安卓13号+.
  • requestFullScreenIntentPermission() 打开Android 14+设置页面用于全屏意图.
  • showIncomingCall() 发布高优先级通知,并可在应用程序运行时启动全屏活动.
  • 超时是最佳的,在可用时也使用通知超时.

iOS系统

  • showIncomingCall() 报告呼叫KallKit.
  • 打电话 Kit本身不需要运行时的许可, 所以 requestPermissions() 立即解决 iOS.
  • 您的应用程序负责在之后启动真正的呼叫会话 callAccepted。 。 。 .
  • 如果您需要从 VoIP 推出的背景呼叫快递, 请将您的 PushKit / APN 流线接通, 以便在您的 Capacitor 桥可用时立即调用此插件 .

选择建筑

  • 如果您的应用程序已经使用 Twilio、 Stream、 Daily 或 SIP 堆栈, 请使用此插件作为本地铃声层, 并将媒体会话保存在您现有的 SDK 中 .
  • 如果您只需要前景测试或自定义后端事件, 请拨打 showIncomingCall() 直接来自联署材料就够了.
  • 如果您需要真实的背景交付, 请将此插件与您的本地驱动集成配对, 而不是将一个驱动提供者烘焙入插件本身 .

示例应用

储存库包括: example-app 带有小型控制面板,用于:

  • 请求权限,
  • 显示一个调用演示,
  • 检查主动呼叫,
  • 并实时观看听众的有效载荷.

API 密码

API控制器,用于呈现出一个本土的接通面.

显示来电(...)

showIncomingCall(options: ShowIncomingCallOptions) => Promise<ShowIncomingCallResult>

显示本地收到的调用.

Android显示高优先级通知,并可以提升全屏活性. iOS报告呼叫CallKit.

参数类型
optionsShowIncomingCallOptions

回返情况: Promise<ShowIncomingCallResult>


端点呼叫(...)

endCall(options: EndCallOptions) => Promise<ActiveCallsResult>

结束一个特定的跟踪呼叫.

参数类型
optionsEndCallOptions

回返情况: Promise<ActiveCallsResult>


终极呼叫(...)

endAllCalls(options?: EndAllCallsOptions | undefined) => Promise<ActiveCallsResult>

结束每一个跟踪电话.

参数类型
optionsEndAllCallsOptions

回返情况: Promise<ActiveCallsResult>


获取 AactiveCalls ()

getActiveCalls() => Promise<ActiveCallsResult>

返回当前跟踪的呼叫 .

回返情况: Promise<ActiveCallsResult>


检查( )

checkPermissions() => Promise<IncomingCallPermissionStatus>

返回当前通知和全屏意图的许可状态.

回返情况: Promise<IncomingCallPermissionStatus>


请求( )

requestPermissions() => Promise<IncomingCallPermissionStatus>

平台支持时请求通知许可.

iOS CallKit本身并不需要运行时的快取,因此iOS解析时无需被催取.

回返情况: Promise<IncomingCallPermissionStatus>


请求FullScreen IntentPermission ()

requestFullScreenIntentPermission() => Promise<IncomingCallPermissionStatus>

可用时打开Android 14+全屏意图设置页面.

在其他平台上,此选项以当前许可状态解决 .

回返情况: Promise<IncomingCallPermissionStatus>


获取 PluginVersion ()

getPluginVersion() => Promise<PluginVersionResult>

返回本地执行版本标记 .

回返情况: Promise<PluginVersionResult>


添加倾听器( 'callDisplayed',...)

addListener(eventName: 'incomingCallDisplayed', listenerFunc: (event: IncomingCallEvent) => void) => Promise<PluginListenerHandle>

在呼叫被交给本土平台UI后被解除.

参数类型
eventName'incomingCallDisplayed'
listenerFunc(event: IncomingCallEvent) => void

回返情况: Promise<PluginListenerHandle>


添加收听器( “ 收听) ,...)

addListener(eventName: 'callAccepted', listenerFunc: (event: IncomingCallEvent) => void) => Promise<PluginListenerHandle>

用户接受本地UI的呼叫后即被解除.

参数类型
eventName'callAccepted'
listenerFunc(event: IncomingCallEvent) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( “ callDeclined ” ,...)

addListener(eventName: 'callDeclined', listenerFunc: (event: IncomingCallEvent) => void) => Promise<PluginListenerHandle>

当用户拒绝本地用户界面的电话时,即被开除.

参数类型
eventName'callDeclined'
listenerFunc(event: IncomingCallEvent) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( “ called End” ,...)

addListener(eventName: 'callEnded', listenerFunc: (event: IncomingCallEvent) => void) => Promise<PluginListenerHandle>

当呼叫通过API或平台动作结束时被解除.

参数类型
eventName'callEnded'
listenerFunc(event: IncomingCallEvent) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( “ callTimed Out” ,...)

addListener(eventName: 'callTimedOut', listenerFunc: (event: IncomingCallEvent) => void) => Promise<PluginListenerHandle>

当一个未回复的呼叫到达其设定的超时时即被解除 .

参数类型
eventName'callTimedOut'
listenerFunc(event: IncomingCallEvent) => void

回返情况: Promise<PluginListenerHandle>


删除所有收听器( )

removeAllListeners() => Promise<void>

删除插件注册的每一个本地听器 .


接口

显示来袭 呼叫结果

结果有效载荷 showIncomingCall()。 。 。 .

Prop类型说明
callIncomingCallRecord创建或再利用的呼叫记录.

来了 调用记录

是目前追踪到的电话.

Prop类型说明
callIdstring您的应用程序提供了稳定的呼叫标识符 .
callerNamestring在本地 UI 中显示的名称 .
handlestring平台可用时显示的二级手柄 .
hasVideoboolean这通电话是否应当作为视频通话处理.
stateIncomingCallState目前平台报告的调用状态.
platform'android' | 'ios' | 'web'制作唱片的平台.
extraRecord<string, any>任意的元数据在呼叫创建时间传递.

显示来袭 调用选项

常见选项用于显示一个接收到的呼叫 .

Prop类型说明
callIdstring电话的稳定标识符。 稍后结束调用时重用同值.
callerNamestring向用户显示主名 .
handlestring可选的二级手柄,如电话号码,SIP URI,或用户ID等.
appNamestring标签由Android在通知中显示. iOS使用主机应用程序捆绑中配置的应用程序显示名.
hasVideoboolean是否应当将下届会话标为可视化.
timeoutMsnumber最佳超时数以毫秒计。 默认为 60000。 。 。 .
acceptTextstring接受动作的自定义标签 。 仅限Android.
declineTextstring递减动作的自定义标签 。 仅限Android.
extraRecord<string, any>任意的JSON元数据在所有事件中都有回响.
androidAndroidIncomingCallOptionsAndroid特定行为超越.
iosIOSIncomingCallOptionsiOS特定行为覆盖.

Android 来袭 调用选项

Android特定接通的呼叫演示选项.

Prop类型说明
channelIdstring通知频道标识符. 默认为 incoming_call_kit。 。 。 .
channelNamestring通知频道显示名称 。 默认为 Incoming Calls。 。 。 .
showFullScreenbooleanAndroid 是否在可能时请求全屏演示. 默认为 true。 。 。 .
accentColorstring可选口音颜色 #RRGGBB 或者说 #AARRGGBB 形式.
ringtoneUristring可选铃声URI字符串. 示例 android.resource://com.example.app/raw/ringtone
isHighPriorityboolean是否将通知列为高度优先事项。 默认为 true。 。 。 .

监督办的到来 调用选项

iOS特定接通的调用演示文稿选项.

Prop类型说明
handleType'generic' | 'phoneNumber' | 'emailAddress'打电话 Kit手柄类型. 默认为 generic。 。 。 .
supportsHoldingboolean是否应该支持该呼吁。 默认为 true。 。 。 .
supportsDTMFboolean呼叫是否应该支持 DTMF 。 默认为 false。 。 。 .
supportsGroupingboolean呼叫是否支持分组 。 默认为 false。 。 。 .
supportsUngroupingboolean调用是否支持不分组 。 默认为 false。 。 。 .

活动呼叫

结果有效载荷 getActiveCalls()。 。 。 .

Prop类型说明
callsIncomingCallRecord[]当地执行仍然追踪到这些呼吁.

终止呼叫选项

结束单一跟踪呼叫的选项 .

Prop类型说明
callIdstring呼叫标识符最初传递给 showIncomingCall()。 。 。 .
reasonstring可选应用程序定义的理由字符串 .

结束所有呼叫选项

结束所有跟踪通话的选项 .

Prop类型说明
reasonstring可选应用程序定义的理由字符串 .

呼叫暂停状态

结果有效载荷进行许可检查.

Prop类型说明
notificationsPermissionState | 'notApplicable'通知许可状态。 iOS CallKit本身不需要运行时间通知权限,所以 iOS 返回 notApplicable。 。 。 .
fullScreenIntentPermissionState | 'notApplicable'全屏意图许可状态. iOS 返回 notApplicable.Android 13和以下 granted。 。 。 .

插件变压器

插件版本有效载荷 .

Prop类型说明
versionstring版本标识符由平台执行返回.

插件听筒

Prop类型
remove() => Promise<void>

来了 调用事件

由插件收听器发送的有效载荷 .

Prop类型说明
callIncomingCallRecord触发事件的电话.
reasonstring国家过渡的可选原因.
source'api' | 'user' | 'system'行动起源.

类型异名

来了 呼叫状态

支持来电状态.

'ringing' | 'accepted' | 'ended'

记录

构造 T 类型 K 的一组属性类型

{ [P in K]: T; }

权限状态

'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'

版本与发布记录

@capgo/capacitor-incoming-call-kit 共发布 17 个版本,首次发布于 2026/03/31;过去 12 个月发布了 17 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.2.14latest2026/10/1525 天前
8.2.132026/10/1327 天前
8.2.122026/10/091 个月前
8.2.112026/10/081 个月前
8.2.92026/10/081 个月前
8.2.102026/10/081 个月前

关于 @capgo/capacitor-incoming-call-kit 的常见问题

@capgo/capacitor-incoming-call-kit 是什么?

安卓全屏通知和iOS CallKit为本地来电的UI插件.

如何安装 @capgo/capacitor-incoming-call-kit?

在项目目录运行 npm install @capgo/capacitor-incoming-call-kit,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-incoming-call-kit 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-incoming-call-kit 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-incoming-call-kit 可以商用吗?

@capgo/capacitor-incoming-call-kit 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-incoming-call-kit 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-incoming-call-kit 在 2026/10/09 – 2026/11/07 这 30 天内被下载 5,911 次,日均约 197 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-incoming-call-kit 还在维护吗?

最新版本 8.2.14 发布于 2026/10/15(25 天前);至今共发布 17 个版本,其中过去 12 个月发布了 17 个;首次发布于 2026/03/31。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。