协同sdk说明


系统通知

<p>[TOC]</p> <h2>概述</h2> <p>除消息通道外,SDK 还提供系统通知这种通道用于消息之外的通知分发。目前有两种类型:内置系统通知和自定义系统通知。 现在主要包括群变动的相关通知,例如入群申请,入群邀请等,如果第三方应用还托管了好友关系,好友的添加、删除也是这个类型的通知。系统通知由 SDK 负责接收和存储,并提供较简单的未读数管理。</p> <h2>内置系统通知</h2> <p>内置系统通知由 <code>QDSystemNotification</code> 表示。</p> <p>原型</p> <pre><code>@interface QDSystemNotification : NSObject /** * 通知 ID */ @property (nonatomic, strong, readonly) NSString *notificationId; /** * 通知类型 */ @property (nonatomic, assign, readonly) QDSystemNotificationType type; /** * 时间戳 */ @property (nonatomic, assign, readonly) NSTimeInterval timestamp; /** * 操作者ID */ @property (nullable,nonatomic,copy,readonly) NSString *sourceID; /** * 操作者名称 */ @property (nullable,nonatomic,copy,readonly) NSString *sourceName; /** * 目标ID,群ID或者是用户ID */ @property (nullable,nonatomic,copy,readonly) NSString *targetID; /** * 附言 */ @property (nullable,nonatomic,copy,readonly) NSString *postscript; /** * 是否已读 */ @property (nonatomic, assign) BOOL isRead; /** * 消息处理状态 * @discussion 修改这个属性,后台会自动更新 db 中对应的数据,SDK 调用者可以使用这个值来持久化他们对消息的处理结果,默认为 0 */ @property (nonatomic, assign) NSInteger handleStatus; /** * 附件 * @discussion 额外信息,只有 好友添加 这个通知有附件 * 好友添加的 attachment 为 QDUserAddAttachment */ @property (nullable,nonatomic,strong,readonly)id attachment; @end</code></pre> <p>所有的内置系统通知都是通过</p> <pre><code>@protocol QDSystemNotificationManagerDelegate &lt;NSObject&gt; @optional /** 收到系统通知回调 @param notification 系统通知 */ - (void)onReceiveSystemNotification:(QDSystemNotification *)notification; @end</code></pre> <p>内置系统通知的本地存储:(以下接口分为全量和过滤,过滤接口需要传入过滤器 QDSystemNotificationFilter,可以按类型选择获取内置系统通知)</p> <p><code>QDSystemNotificationFilter</code> 原型</p> <pre><code>@interface QDSystemNotificationFilter : NSObject /** * 类型列表,取值范围为: QDSystemNotificationType 枚举类型 */ @property (nonatomic, copy) NSArray&lt;NSNumber *&gt; *notificationTypes; @end</code></pre> <p><strong> 获取本地存储的内置系统通知 </strong></p> <ul> <li>全量接口</li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 获取本地存储的系统通知 @param notification 当前最早系统消息,没有则传入nil @param limit 最大获取数 @return 系统消息列表 */ - (nullable NSArray&lt;QDSystemNotification *&gt; *)fetchSystemNotifications:(nullable QDSystemNotification *)notification limit:(NSInteger)limit; @end</code></pre> <ul> <li>过滤接口</li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 获取本地存储的系统通知 @param notification 当前最早系统消息,没有则传入nil @param limit 最大获取数 @param filter 过滤器 @return 系统消息列表 */ - (nullable NSArray&lt;QDSystemNotification *&gt; *)fetchSystemNotifications:(nullable QDSystemNotification *)notification limit:(NSInteger)limit filter:(nullable QDSystemNotificationFilter *)filter; @end</code></pre> <p><strong> 获取本地存储的内置系统未读数 </strong></p> <ul> <li>全量接口</li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 未读系统消息数 @return 未读系统消息数 */ - (NSInteger)allUnreadCount; @end</code></pre> <ul> <li>过滤接口</li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 未读系统消息数 @param filter 过滤器 @return 未读系统消息数 */ - (NSInteger)allUnreadCount:(nullable QDSystemNotificationFilter *)filter; @end</code></pre> <p><strong> 删除本地存储的内置系统通知 </strong></p> <ul> <li>全量接口</li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 删除所有系统消息 */ - (void)deleteAllNotifications; @end</code></pre> <ul> <li>过滤接口</li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 删除所有命中过滤器的系统消息 @param filter 过滤器 */ - (void)deleteAllNotifications:(nullable QDSystemNotificationFilter *)filter; @end</code></pre> <ul> <li>单条接口</li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 删除单条系统消息 @param notification 系统消息 */ - (void)deleteNotification:(QDSystemNotification *)notification; @end</code></pre> <p><strong> 标记本地存储的内置系统通知为已读 </strong></p> <ul> <li>全量接口 </li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 标记所有系统消息为已读 */ - (void)markAllNotificationsAsRead; @end</code></pre> <ul> <li>过滤接口</li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 标记所有命中过滤器的系统消息为已读 @param filter 过滤器 */ - (void)markAllNotificationsAsRead:(nullable QDSystemNotificationFilter *)filter; @end</code></pre> <ul> <li>单条接口</li> </ul> <pre><code>@protocol QDIMSystemNotificationManager &lt;NSObject&gt; /** 标记单条系统消息为已读 @param notification 系统消息 */ - (void)markNotificationsAsRead:(QDSystemNotification *)notification; @end</code></pre>

页面列表

ITEM_HTML