有奖捉虫:行业应用 & 管理与支持文档专题 HOT
TUICallKit 组件支持通过接入推送插件,实现离线推送的功能。IM 为您提供了两种集成方式:
两种集成方式均支持小米、华为、荣耀、OPPO、vivo、魅族、APNs、一加、realme、iQOO、 FCM 等厂商通道。我们推荐接入 TIMPush 推送插件,该插件接入更简单,支持数据统计和链路追踪,并且有更高的可触达范围。具体详情请见:推送功能介绍
?
本文档将详细介绍如何结合 TUICallKit 组件和 TIMPush 推送插件,以实现音视频通话的离线推送能力。
说明:
如果您想要实现自集成推送,请参见:Android-自集成推送。跑通离线推送功能中,步骤7和步骤8不需要配置,TUICallKit 组件内部已完成。

集成效果

TUICallKit 含UI方案集成 TIMPush推送插件 的效果如下(以下是VIVO X60的显示效果,不同厂商的设备可能会呈现出不同的效果)。
应用在后台时或离线时
锁屏时
?
?
?
?
?
?

准备条件

在进行离线推送功能的集成前,请确保已按照官方文档完成厂商配置,以确保TUICallKit的离线推送功能正常运行。

功能接入

1. 请参见推送插件 TIMPush 快速接入 文档,完成其中的步骤1、步骤2、步骤3 及 步骤4(步骤5和步骤6在 TUICallKit 组件中已完成,不需要单独配置)。
2. 在项目的 app 目录下,找到并打开build.gradle文件,将应用包名修改为您的实际应用包名。
applicationId 'com.****.callkit'
完成上述步骤后,您的项目即具备了TUICallKit的离线唤醒功能。当主叫方发起通话时,被叫方即使在后台离线状态,也能收到推送通知。用户点击推送通知进入应用并登录后,将自动拉起通话界面。

高级功能

自定义通知内容

在调用 call、groupCall 发起通话时,可通过自定义 CallParam 参数来配置 OfflinePushInfo 内容。
TUICallKit 组件内 OfflinePushInfoConfig.kt 文件提供了默认的通知样式,可以直接使用,或者也可以修改相应代码进行自定义。
val pushInfo = TUICallDefine.OfflinePushInfo() pushInfo.title = "Mike" pushInfo.desc = "You have a new call" val params = TUICallDefine.CallParams() params.offlinePushInfo = pushInfo TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video, params, callback)

自定义通知铃声

离线推送铃声目前仅支持华为小米FCM厂商进行自定义设置,其他厂商暂不支持。
华为
小米
FCM(通知消息)
将铃音文件添加到本地 Android Studio 工程 res/raw 目录下。
调用接口 setAndroidSound() 和 setIOSSound() 接口设置铃声。
kotlin
java
val pushInfo = OfflinePushInfo()
pushInfo.title = "Mike" pushInfo.desc = "You have a new call"
pushInfo.androidSound = "phong_ring"
?
val params = TUICallDefine.CallParams() params.offlinePushInfo = pushInfo TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video, params, callback)
TUICallDefine.OfflinePushInfo pushInfo = new TUICallDefine.CallParams().offlinePushInfo; pushInfo.setAndroidSound("phone_ring");
注意
华为推送的铃声为首次创建通知渠道时的铃声,之后再次设置其他铃声无效,若想更新铃音需卸载重装,详见:华为自定义铃声
将铃音文件添加到本地 Android Studio 工程 res/raw 目录下。
Android 8.0 之前,调用setAndroidSound() 和 setIOSSound() 接口设置铃声。
Android 8.0 之后,还需要登录小米厂商控制台并创建channel并做好配置,然后在 即时通信 IM 控制台中配置channelID,或在参数中配置。
val pushInfo = OfflinePushInfo()
pushInfo.title = "Mike" pushInfo.desc = "You have a new call"
pushInfo.androidSound = "phong_ring"
pushInfo.androidXiaoMiChannelID = "channelID"
?
val params = TUICallDefine.CallParams() params.offlinePushInfo = pushInfo TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video, params, callback)
?
?
?
FCM自定义铃声,需要在登录之前进行配置,详情请参见 configFCMPrivateRing
TIMPushManager.getInstance().configFCMPrivateRing("fcm_push_channel", "phone_ring", true)
Android 8.0 之前,调用setAndroidSound() 和 setIOSSound() 接口设置铃声。
Android 8.0之后,FCM 需要在 即时通信 IM 控制台中配置channelID,或在参数中配置。
val pushInfo = OfflinePushInfo()
pushInfo.title = "Mike" pushInfo.desc = "You have a new call"
pushInfo.androidSound = "phong_ring"
pushInfo.androidFCMChannelID = "fcm_push_channel"
?
val params = TUICallDefine.CallParams() params.offlinePushInfo = pushInfo TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video, params, callback)
注意
FCM 的数据消息可以实现类似VOIP 的通知机制,详情见:FCM 数据消息,通知消息和数据消息可以相互切换。
FCM 自定义铃声或者设置 channel id 仅支持证书模式。
?
?

自定义角标

目前仅华为支持收到离线消息或通话请求时生成角标,其他厂商暂不支持,详见:自定义角标

常见问题

1. 若在集成过程中遇到问题,请务必先查阅 插件推送-常见问题 进行自助排查。
2. 条件说明:部分厂商要求必须上架应用市场才可以正常使用推送服务,详情参见下表:
厂商通道
是否需要上架
账号说明
小米
需要注册企业开发者账号
VIVO
需要注册企业开发者账号
OPPO
需要注册企业开发者账号
荣耀
需要注册企业开发者账号
华为
个人开发者账号即可
魅族
个人开发者账号即可

交流与反馈

如有问题,欢迎您加入我们的 TUICallKit 技术交流平台 zhiliao,进行技术交流和产品沟通。


http://www.vxiaotou.com