跳过内容

iOS

GitHub

iOS 行为原理

iOS 行为原理

在 iOS 上,插件将来电呼叫报告给 CallKit。这样您就可以获得系统的来电呼叫sheet和标准化的呼叫操作,而无需自己构建原生来电呼叫 UI。

requestPermissions() 在 iOS 上,CallKit 本身不需要运行时权限对话框,因此会立即解决。

基本示例

复制到剪贴板
import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.showIncomingCall({
callId: 'call-42',
callerName: 'Ada Lovelace',
handle: '+1 555 010 020',
ios: {
handleType: 'phoneNumber',
supportsHolding: true,
supportsDTMF: false,
},
});

Use ios.handleType 用于真实电话号码

  • generic Section titled “How iOS behavior works”
  • phoneNumber Section titled “Basic example”
  • emailAddress 用于基于电子邮件的身份

此插件不会为您注册推送服务或APNs。

要在iOS上实现真正的后台或终止状态的铃声,您的主应用程序仍然需要匹配您的传输策略的原生Apple推送设置:

  1. 在您的传输使用Apple推送传递时,启用推送通知。
  2. 在您的应用程序使用VoIP推送流时,启用语音通话背景模式。
  3. 将来电事件传递给您的应用程序,并在Capacitor桥可用时立即调用此插件。

如果您的铃声事件仅存在于JavaScript中,您将在应用程序已经在前台运行时获得最佳体验。

麦克风和摄像头权限

标题:麦克风和摄像头权限

CallKit不会替代您的媒体SDK。如果真实的呼叫会话使用麦克风或摄像头访问,使用描述仍然属于您的应用程序:

<key>NSMicrophoneUsageDescription</key>
<string>This app uses the microphone for calls.</string>
<key>NSCameraUsageDescription</key>
<string>This app uses the camera for video calls.</string>

只添加您实际呼叫流程所需的键

将这些责任保留在应用层

标题:将这些责任保留在应用层
  • PushKit 和 APNs 注册
  • 身份验证和令牌刷新
  • 加入实际房间或 VoIP 会话后 callAccepted
  • 当插件发出时结束或恢复远程呼叫状态 callDeclined, callEnded, 或 callTimedOut

如果您正在使用 iOS 为native插件工作做好准备,连接它 使用@capgo/capacitor-incoming-call-kit 为使用@capgo/capacitor-incoming-call-kit中的native能力 Capgo插件目录 为Capgo插件目录中的产品工作流 Capacitor由Capgo的插件 为Capacitor由Capgo中的实现细节 添加或更新插件 为添加或更新插件的实现细节,并 Ionic企业插件替代品 为Ionic企业插件替代品中的产品工作流