IM 即时通讯
Windows/macOS
开发指南

系统通知概述

更新时间: 2022/10/10 11:45:56

系统通知概述

系统通知是云信系统内建的通知,包括预定义的内置系统通知和自定义系统通知两类。

内置系统通知

内置系统通知,由云信服务器推送给用户或群组的系统类的事件通知。内置系统通知由 SDK 负责接收和存储,并提供较简单的未读数管理。

目前内置系统通知主要包括高级群相关事件变动的通知,例如入群申请,入群邀请等,具体推送的事件类型请参见NIMSysMsgType。如果第三方应用还托管了好友关系,则好友的添加、删除也属于该类型的通知。

内置系统通知通常在验证消息列表中展现。例如:某某某请求加你为好友等。

内置系统通知与通知消息的区别

通知消息属于会话内的一种消息(消息类型为 kNIMMessageTypeNotification ),有在线、离线、漫游。目前用于(已操作完成的)高级群、超大群和聊天室相关的通知消息(具体通知类型请参见 NIMNotificationId),不计入消息未读数。没有推送和通知栏提醒。通知消息一般位于聊天界面的中间。例如:群名称更新、某某某退出了群聊等。

自定义系统通知

自定义系统通知,既可以由客户端发起,也可以由开发者服务器发起。SDK 仅透传自定义系统通知,不负责解析和存储。通知内容由第三方 APP 自由扩展。

开发者可以根据其业务逻辑自定义一些事件状态的通知,来实现各种业务场景。例如实现单聊场景中的对方“正在输入”的功能。

自定义系统通知与自定义消息的区别

自定义消息属于会话内的一种消息(消息类型为 kNIMMessageTypeCustom ),主要提供给开发者定制消息使用,有在线、离线、漫游、通知栏提醒。自定义消息一般与普通文本,语音消息相同,位于聊天界面的左右两侧。例如,猜拳、贴图、阅后即焚均可以采用自定义消息来实现。

系统通知功能

类型 消息存储 未读计数 在线消息 离线消息 漫游消息 消息推送
内置系统通知 没有 没有
自定义系统通知 没有 没有 没有

系统通知对象

系统通知由nim::SysMessage 来定义。其参数说明如下:

参数 说明
timetag 时间戳
type 系统通知类型,具体请参见NIMSysMsgType
sender_accid 系统通知的来源,账号或者群ID
receiver_accid 系统通知的目标,账号或者群ID
id 系统通知的 ID,系统通知的唯一标识
content 系统通知内容,只读,SDK 不转发该字段
attach 系统通知附件
status 系统通知状态,分为未读、已读、已通过、已拒绝、已删除和已失效,具体请参见NIMSysMsgStatus
msg_setting 系统通知相关配置,如是否需要推送、计数,是否支持离线发送等,具体请参见SysMessageSetting
rescode 系统通知返回的错误码,具体请参见NIMResCode
feature 系统通知属性,分为离线、同步、默认等,具体请参见NIMMessageFeature
total_unread_count 系统通知总未读数
client_msg_id 系统通知客户端 ID
callbac_ext 第三方回调返回的自定义字段,v8.2.0版本以上适用

系统通知类型

目前云信的内置系统通知类型如下:

通知类型 说明
kNIMSysMsgTypeTeamInvite 邀请用户加入高级群
kNIMSysMsgTypeTeamApply 用户申请加入高级群
kNIMSysMsgTypeTeamInviteReject 用户拒绝加入高级群邀请
kNIMSysMsgTypeTeamReject 拒绝用户的加入高级群申请
kNIMSysMsgTypeFriendAdd 加好友,通知内容 kNIMSysMsgKeyAttach: {"vt":verifyType} 中会返回具体的验证类型
kNIMSysMsgTypeFriendDel 删除好友
kNIMSysMsgTypeCustomP2PMsg 自定义单聊系统通知
kNIMSysMsgTypeCustomTeamMsg 自定义高级群系统通知
kNIMSysMsgTypeCustomSuperTeamMsg 自定义超大群系统通知
kNIMSysMsgTypeUnknown 未知类型,本地使用,发送时勿使用,作为默认

SDK 的自定义系统通知不计入未读数,即使配置了计数参数(kNIMSysMsgKeyPushNeedBadge=1)也无效。

系统通知 API 概述

C++

SDK 的 nim::SystemMsg 提供系统通知操作相关接口,帮助您快速使用系统通知功能。

C

SDK 的 nim_sysmsg 提供系统通知操作相关接口,帮助您快速使用系统通知功能。

C#

SDK 的 NIM.SysMessage.SysMsgAPI 提供系统通知操作相关接口,帮助您快速使用系统通知功能。

此文档是否对你有帮助?
有帮助
去反馈
  • 系统通知概述
  • 内置系统通知
  • 自定义系统通知
  • 系统通知功能
  • 系统通知对象
  • 系统通知类型
  • 系统通知 API 概述