静默推送属于特殊的远程通知,主要用于后台运行的 App 和服务器进行数据同步,例如:App 不在活跃时,App 内数据已经过时,服务器会发送静默推送,此时 App 则进行数据更新,用户全程无感知。
本文档适用于以下平台:iOS 和 Android(仅限支持 Google 服务的智能设备)。
在实现静默推送之前,请确保:
已在 ZEGO 控制台 创建项目,获取到了接入 ZIM SDK 服务所需的 AppID、AppSign。ZIM 服务权限不是默认开启的,使用前,请先在 ZEGO 控制台 自助开通 ZIM 服务(详情请参考控制台的 服务配置 - 即时通讯 - 开通服务),若无法开通 ZIM 服务,请联系 ZEGO 技术支持开通。
已集成 ZIM SDK,详情请参考 快速开始 - 实现基本收发消息 的 “2 集成 SDK”。
已集成 ZPNs SDK 2.3.1 或以上版本 并实现离线推送,详情请参考 实现离线推送。
联系 ZEGO 技术支持配置携带静默推送策略的 resourceID
。静默推送策略有 iOS 和 FCM 两种。根据实际需求,您可以选择只携带一种静默推送策略的 resourceID
。
在需要发送离线推送的场景(如 呼叫邀请、离线推送 等),向 ZIMPushConfig 的 resourceID 字段填入预先配置好的值,并根据具体业务场景的需要填入 payload 字段。
pushConfig.resourcesID="联系 ZEGO 技术支持配置的 resourceID";
pushConfig.payload = "填写需要的附加内容";
3.完成上述步骤,即可向别人发送静默推送。
通过实现 onThroughMessageReceived 事件来接收在线静默推送通知。
ZPNsEventHandler.onThroughMessageReceived = (ZPNsMessage message) {
// 处理在线静默推送通知
String payload = message.extras['payload'] as String;
};
实现类似如下代码块所示的一个顶级非匿名函数(例如,不能是要求初始化的 class 方法)。
// 注意:@pragma('vm:entry-point') 必须放在函数上,以表明它可以在 AOT 模式下直接从本机或 VM 代码解析、分配或调用。
@pragma('vm:entry-point')
Future<void> _zpnsMessagingBackgroundHandler(ZPNsMessage message) async{
// payload 为发送时填写的 payload 字段内容
String payload = message.extras['payload'] as String;
// 当 App 在后台被终止时,可在 logcat 查看 print 打印内容
print(payload);
}
在打开 App 时尽快调用 setBackgroundMessageHandler 方法传入上述函数,以便 Android App 在后台被终止时触发上述方法,接收离线静默推送通知。
ZPNs.setBackgroundMessageHandler(_zpnsMessagingBackgroundHandler);
完成上述步骤,即可接收来自他人的静默推送。
联系我们
文档反馈