Cordova VoIP 通话
Pushwoosh 使用 pushwoosh-cordova-plugin 支持 iOS 和 Android 的 VoIP 风格通话通知。这可以启用原生 VoIP 通话功能,包括来电 UI 和通话控制事件。
开始之前,请按照基础集成指南中的说明,使用您的 Pushwoosh Application Code 集成插件。
1. 添加并启用 VoIP 功能的 Pushwoosh Cordova 插件
Anchor link to安装插件并启用 VoIP 标志:
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 中打开您的项目并按照以下步骤操作:
- 前往 Signing & Capabilities。
- 添加 Background Modes 功能。
- 选中 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– 切换静音状态,仅限 iOSheld– 切换保持状态,仅限 iOSvoipPushPayload– 返回传入 VoIP 通话的推送负载incomingCallSuccess– 当系统通话 UI 成功显示时调用,仅限 iOSincomingCallFailure– 当系统通话 UI 显示失败时调用,仅限 iOSspeakerOn– 打开扬声器speakerOff– 关闭扬声器playDTMF– 在通话期间播放 DTMF 音,仅限 iOSvoipDidRegisterTokenSuccessfully– 当 VoIP 令牌成功注册到 Pushwoosh 时调用,仅限 iOSvoipDidFailToRegisterTokenWithError– 当 VoIP 令牌注册失败时调用,仅限 iOSvoipDidCancelCall– 当通话通过 VoIP 推送被远程取消时调用voipDidFailToCancelCall– 当取消通话的尝试失败时调用
这些可以使用 Cordova 的 PushNotification 对象进行挂钩,从而允许您控制和响应 VoIP 通话状态的变化。
在 Android 上,您还可以在自己的原生 Java 类中处理这些事件,例如在用户接听时打开您自己的通话界面。请参阅 Android 上的自定义通话事件处理程序。