相关文章推荐
小百科
›
自定义推送通知样式 | 融云开发者文档
context
从未表白的眼镜
5 月前
Search
开发者帮助中心
控制台
Loading...
5.X开发指导计费细则出海指南快速上手初始化导入 SDK连接管理用户管理消息管理会话管理群组业务聊天室业务超级群业务推送管理推送服务概述推送集成指南推送(旧版)集成指南用户级推送配置自定义推送通知样式配置推送铃声上报推送数据自定义推送点击事件解决推送客户端冲突通知与免打扰混淆内容审核升级指南IM 翻译插件适配 Android OS 版本状态码更新日志(开发版)更新日志(稳定版)客户端 API 参考推送管理自定义推送通知样式PDF本页总览自定义推送通知样式接收到推送消息后,系统会弹出通知,显示推送消息。 FCM 类型推送:针对 FCM 类型推送方式,如果在控制台设置的推送方式为透传消息方式,可通过以下方式自定义通知样式。 融云自建推送:可通过以下方式自定义通知样式。但因到达率较低,已不推荐使用。 其他第三方类型推送:SDK 接收到其他第三方厂商的推送后,弹出的通知是系统通知,由手机系统底层直接弹出通知,所以不支持自定义。 自定义通知样式 如果您使用 FCM 推送,且 FCM 后台配置消息推送方式为透传消息方式时,可通过以下方式自定义通知样式。 使用 PushEventListener 您可以设置 PushEventListener,覆写 preNotificationMessageArrived 方法,拦截通知事件并自定义显示。 SDK 从 5.1.0 版本开始支持该功能。 请在 Application 的 onCreate 方法中注册监听器。 由于 Android 12 通知 trampoline 限制的原因,当您的 App 的 targetVersion >= 31 时,建议直接在 RongPushClient.setPushEventListener 中的回调中直接启动 Activity。请勿再通过广播或者服务再进行消息分发之后再启动 Activity。 RongPushClient.setPushEventListener( new PushEventListener() { @Override public boolean preNotificationMessageArrived( Context context, PushType pushType, PushNotificationMessage notificationMessage) { // 该回调仅在通知类型为透传消息时生效。返回 true 表示拦截,false 为不拦截 return false; } @Override public void afterNotificationMessageArrived( Context context, PushType pushType, PushNotificationMessage notificationMessage) { // 该回调仅在通知类型为透传消息时生效 } @Override public boolean onNotificationMessageClicked( Context context, PushType pushType, PushNotificationMessage notificationMessage) { // 用户可以在此定义自己的通知的点击事件业务,返回 true 表示拦截,false 为不拦截 return false; } @Override public void onThirdPartyPushState( PushType pushType, String action, long resultCode) {} }); 使用 PushMessageReceiver 您也可以通过 PushMessageReceiver 的 onNotificationMessageArrived 方法自定义 FCM 通知样式。该方式优先级低于 PushEventListener。 提示由于 Android 12 通知 trampoline 限制的原因,当您的 App 的 targetVersion >= 31 时,建议直接在 PushMessageReceiver 的回调中直接启动 Activity。请勿再通过广播或者服务再进行消息分发之后再启动 Activity。 创建自定义 YourCustomPushMessageReceiver,并继承 PushMessageReceiver。在 onNotificationMessageArrived(通知到达事件)中可收到推送内容。 public class YourCustomMessageReceiver extends PushMessageReceiver {@Overridepublic boolean onNotificationMessageClicked( Context context, PushType pushType, PushNotificationMessage message) { if (pushType.equals(PushType.GOOGLE_FCM)){ // TODO } // 返回 true 表示拦截,false 为不拦截 return true;}}
推荐文章