JMSGConversationDelegate.h 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * | | | | \ \ / / | | | | / _______|
  3. * | |____| | \ \/ / | |____| | / /
  4. * | |____| | \ / | |____| | | | _____
  5. * | | | | / \ | | | | | | |____ |
  6. * | | | | / /\ \ | | | | \ \______| |
  7. * | | | | /_/ \_\ | | | | \_________|
  8. *
  9. * Copyright (c) 2011 ~ 2015 Shenzhen HXHG. All rights reserved.
  10. */
  11. #import <Foundation/Foundation.h>
  12. /*!
  13. * 会话相关变更通知
  14. */
  15. @protocol JMSGConversationDelegate <NSObject>
  16. /*!
  17. * @abstract 会话信息变更通知
  18. *
  19. * @param conversation 变更后的会话对象
  20. *
  21. * @discussion 当前有二个属性: 会话标题(title), 会话图标
  22. *
  23. * 收到此通知后, 建议处理: 如果 App 当前在会话列表页,刷新整个列表;如果在聊天界面,刷新聊天标题。
  24. */
  25. @optional
  26. - (void)onConversationChanged:(JMSGConversation *)conversation;
  27. /*!
  28. * @abstract 同步离线消息、离线事件通知
  29. *
  30. * @param conversation 同步离线消息的会话
  31. * @param offlineMessages 离线消息、离线事件数组
  32. *
  33. * @discussion 注意:
  34. *
  35. * SDK 会将消息下发分为在线下发和离线下发两种情况,
  36. * 其中用户在离线状态(包括用户登出或者网络断开)期间所收到的消息我们称之为离线消息.
  37. *
  38. * 当用户上线收到这部分离线消息后,这里的处理与之前版本不同的是:
  39. *
  40. * 3.1.0 版本之前: SDK 会和在线时收到的消息一样,每收到一条消息都会上抛一个在线消息 JMSGMessage 来通知上层.
  41. *
  42. * 3.1.0 版本之后: SDK 会以会话为单位,不管该会话有多少离线消息,SDK同步完成后每个会话只上抛一次.
  43. *
  44. * 3.2.1 版本之后: SDK 会以会话为单位,不管该会话有多少离线事件,SDK同步完成后每个会话只上抛一次
  45. *
  46. * 注意:一个会话最多触发两次这个代理,即:离线消息和离线事件各一次,这样会大大减轻上层在收到消息刷新 UI 的压力.
  47. *
  48. * 上层通过此代理方法监听离线消息同步的会话,详见官方文档.
  49. *
  50. */
  51. @optional
  52. - (void)onSyncOfflineMessageConversation:(JMSGConversation *)conversation
  53. offlineMessages:(NSArray JMSG_GENERIC(__kindof JMSGMessage *)*)offlineMessages;
  54. /*!
  55. * @abstract 同步漫游消息通知
  56. *
  57. * @param conversation 同步漫游消息的会话
  58. *
  59. * @discussion 注意:
  60. *
  61. * 当 SDK 触发此函数时,说明该会话有同步下漫游消息,并且已经存储到本地数据库中,
  62. * 上层可通过 JMSGConversation 类中的获取message的方法刷新UI.
  63. *
  64. * @since 3.1.0
  65. */
  66. @optional
  67. - (void)onSyncRoamingMessageConversation:(JMSGConversation *)conversation;
  68. /*!
  69. * @abstract 接收聊天室消息
  70. *
  71. * @param conversation 聊天室会话
  72. * @param messages 接收到的消息数组,元素是 JMSGMessage
  73. *
  74. * @discussion 注意:
  75. *
  76. * 接收聊天室的消息与单聊、群聊消息不同,聊天室消息都是通过这个代理方法来接收的。
  77. *
  78. * @since 3.4.0
  79. */
  80. - (void)onReceiveChatRoomConversation:(JMSGConversation *)conversation
  81. messages:(NSArray JMSG_GENERIC(__kindof JMSGMessage *)*)messages;
  82. /*!
  83. * @abstract 当前剩余的全局未读数
  84. *
  85. * @param newCount 变更后的数量
  86. */
  87. @optional
  88. - (void)onUnreadChanged:(NSUInteger)newCount;
  89. @end