本地通知
Global IM UIKit 已实现本地通知的创建、弹出行为,方便开发者快速构建应用。
什么是本地通知
本地通知指应用在前台或后台运行时,由 Global IM UIKit 或应用客户端直接调用系统接口创建并发送的通知(Notification)。Global IM UIKit 内部已经实现了本地通知功能 (Notification),当应用处于后台接收到新消息时,Global IM UIKit 默认会在通知面板弹出通知提醒,即本地通知。
Android 通知栏显示的内容分为“本地通知”和“远程推送”,本文仅描述本地通知的处理方案。如果您不清楚如何区分本地通知与远程推送,可阅读知识库文档 如何理解即时通讯业务中的实时消息、本地通知和远程推送。
用法
Global IM UIKit 的本地通知已支持以下场景:
-
当 App 刚进入后台时(仍处于后台活跃状态),Global IM UIKit 仍可通过长连接通道接收到新消息(撤回消息也会产生撤回信令消息)。接到新消息后,Global IM UIKit 默认会创建并弹出通知,即本地通知。点击此通知会跳转到会话页面。
App 在后台进入非活跃状态后(例如,被系统杀死),Global IM UIKit 与服务端断开连接。如果应用已集成第三方厂商推送服务(或融云自建推送服务),此时可通过接收推送通知。来自第三方厂商的离线推送通知一般由推送厂商直接创建并弹出,不属于本文所述的本地通知。
-
当 App 处于前台,且未打开任何会话页面时(未与任何人聊天),接收新消息后默认会响铃并震动,但不弹通知。可通过
setForegroundOtherPageAction
修改为静默或仅弹出通知。
设置本地通知分类
华为从 2023 年 9 从2023年9月15日开始,华为推送服务将基于《华为消息分类标准》对本地通知进行灰度管控,主要包括对应用发送的本地通知进行分类管理,以及对资讯营销消息统一进行频次管控。应用在未申请华为自分类权益的情况下,发送的本地通知将全部按照资讯营销消息处理(限频2条或5条/天)。
为避免 Global IM UIKit 直接调用华为设备系统接口发送的本地通知无法弹出,应用应确保自身已向华为申请所需自分类权益。Global IM UIKit 从 5.6.4 版本开始,内部弹出本地通知的 category
默认设置为 CATEGORY_MESSAGE
,应用程序不需要额外调用 API 进行设置。
您可以在初始化之后,使用 Global IM UIKit 全局配置修改默认的本地通知分类:
ConfigCenter.getNotificationConfig().setCategoryNotification(Notification.CATEGORY_MESSAGE);