跳到内容

Cordova VoIP 通话

Pushwoosh 使用 pushwoosh-cordova-plugin 支持 iOS 和 Android 的 VoIP 风格通话通知。这可以启用原生 VoIP 通话功能,包括来电 UI 和通话控制事件。

开始之前,请按照基础集成指南中的说明,使用您的 Pushwoosh Application Code 集成插件。

1. 添加并启用 VoIP 功能的 Pushwoosh Cordova 插件

Anchor link to

安装插件并启用 VoIP 标志:

Terminal window
cordova plugin add pushwoosh-cordova-plugin --variable PW_VOIP_IOS_ENABLED=true --variable PW_VOIP_ANDROID_ENABLED=true

这会将插件配置为在 iOS 上支持 VoIP 功能。

2. 检查 PushwooshVoIP 依赖项

Anchor link to

插件会自动链接 PushwooshVoIP 模块。在 cordova-ios 8 上,插件会添加 PushwooshVoIP Swift 包,并且不会更改 Podfile。在更早的 cordova-ios 版本上,插件会将以下行添加到您的 Podfile 中:

pod 'PushwooshXCFramework/PushwooshVoIP'

此模块是支持基于 PushKit 的 VoIP 通知和系统级通话处理所必需的。

3. 在 Xcode 中启用 VoIP 后台模式

Anchor link to

在 Xcode 中打开您的项目并按照以下步骤操作:

  1. 前往 Signing & Capabilities。
  2. 添加 Background Modes 功能。
  3. 选中 Voice over IP 选项。

这允许您的应用在后台时接收传入的 VoIP 推送。

4. 在 Android 上请求通话权限

Anchor link to

在 Android 上,应用需要获得用户的许可才能接收通话。请使用 requestCallPermission() 请求该权限。如果用户拒绝,应用将忽略传入的 VoIP 通话。

pushwoosh.requestCallPermission();

5. 设置自定义铃声(可选)

Anchor link to

插件会自动初始化 VoIP。要为来电播放自定义铃声,请传入应用包中的声音文件名:

pushwoosh.setRingtone("incoming.caf");

6. 可用的 VoIP 回调和方法

Anchor link to

视频支持和来电者 ID 格式在 VoIP 推送负载中按通话设置:video,以及在 iOS 上的 handleType(1 表示通用,2 表示电话号码,3 表示电子邮件)。

Cordova 插件支持以下与 VoIP 相关的方法和事件:

  • answer – 当用户接听来电时调用
  • endCall – 当用户结束当前通话时调用
  • hangup – 当通话被挂断时调用
  • reject – 当来电被拒绝时调用
  • muted – 切换静音状态,仅限 iOS
  • held – 切换保持状态,仅限 iOS
  • voipPushPayload – 返回传入 VoIP 通话的推送负载
  • incomingCallSuccess – 当系统通话 UI 成功显示时调用,仅限 iOS
  • incomingCallFailure – 当系统通话 UI 显示失败时调用,仅限 iOS
  • speakerOn – 打开扬声器
  • speakerOff – 关闭扬声器
  • playDTMF – 在通话期间播放 DTMF 音,仅限 iOS
  • voipDidRegisterTokenSuccessfully – 当 VoIP 令牌成功注册到 Pushwoosh 时调用,仅限 iOS
  • voipDidFailToRegisterTokenWithError – 当 VoIP 令牌注册失败时调用,仅限 iOS
  • voipDidCancelCall – 当通话通过 VoIP 推送被远程取消时调用
  • voipDidFailToCancelCall – 当取消通话的尝试失败时调用

这些可以使用 Cordova 的 PushNotification 对象进行挂钩,从而允许您控制和响应 VoIP 通话状态的变化。

在 Android 上,您还可以在自己的原生 Java 类中处理这些事件,例如在用户接听时打开您自己的通话界面。请参阅 Android 上的自定义通话事件处理程序。

相关链接

Anchor link to