好友管理

概述

JMessage iOS SDK 从 2.4.0 版本开始提供接口实现对用户好友关系的托管,以及相关好友请求的发送和接收。

好友模块仅实现对用户好友关系的托管,以及相关好友请求的发送和接收。除此之外的任何建立在好友关系之上的功能(如:仅限于好友之间才能进行的聊天等),需要开发者的应用层自己实现。JMessage 本身是无好友通信模式。

发送好友添加请求

  1. /*!
  2. * @abstract 发送添加好友请求
  3. *
  4. * @param username 对方用户名
  5. * @param userAppKey 对方所在应用appkey,不传则默认是本应用
  6. * @param reason 添加好友时的备注,可不填
  7. *
  8. * @param handler 结果回调。回调参数
  9. *
  10. * - resultObject 相应的返回对象
  11. * - error 错误信息
  12. *
  13. * 如果 error 为 nil, 表示设置成功
  14. * 如果 error 不为 nil,表示设置失败
  15. *
  16. * @discussion 在对方未做回应的前提下,允许重复发送添加好友的请求。
  17. */
  18. + (void)sendInvitationRequestWithUsername:(NSString *)username
  19. appKey:(NSString *)userAppKey
  20. reason:(NSString *)reason
  21. completionHandler:(JMSGCompletionHandler)handler;

接受好友请求

  1. /*!
  2. * @abstract 接受好友邀请
  3. *
  4. * @param username 对方用户名
  5. * @param userAppKey 对方所在应用appkey,不传则默认是本应用
  6. *
  7. * @param handler 结果回调。回调参数:
  8. *
  9. * - resultObject 相应的返回对象
  10. * - error 错误信息
  11. *
  12. * 如果 error 为 nil, 表示设置成功
  13. * 如果 error 不为 nil,表示设置失败
  14. *
  15. */
  16. + (void)acceptInvitationWithUsername:(NSString *)username
  17. appKey:(NSString *)userAppKey
  18. completionHandler:(JMSGCompletionHandler)handler;

拒绝好友请求

  1. /*!
  2. * @abstract 拒绝好友邀请
  3. *
  4. * @param username 对方用户名
  5. * @param userAppKey 对方所在应用appkey,不传则默认是本应用
  6. * @param reason 拒绝理由,可不传
  7. *
  8. * @param handler 结果回调。回调参数:
  9. *
  10. * - resultObject 相应的返回对象
  11. * - error 错误信息
  12. *
  13. * 如果 error 为 nil, 表示设置成功
  14. * 如果 error 不为 nil,表示设置失败
  15. *
  16. */
  17. + (void)rejectInvitationWithUsername:(NSString *)username
  18. appKey:(NSString *)userAppKey
  19. reason:(NSString *)reason
  20. completionHandler:(JMSGCompletionHandler)handler;

获取好友列表

  1. /*!
  2. * @abstract 获取好友列表
  3. *
  4. * @param handler 结果回调。回调参数:
  5. *
  6. * - resultObject 类型为 NSArray,数组里成员的类型为 JMSGUser
  7. * - error 错误信息
  8. *
  9. * 如果 error 为 nil, 表示设置成功
  10. * 如果 error 不为 nil,表示设置失败
  11. *
  12. * @discussion 从服务器获取,异步返回结果,返回用户的好友列表。
  13. * 建议开发者在 SDK 完全启动之后,再调用此接口获取数据
  14. */
  15. + (void)getFriendList:(JMSGCompletionHandler)handler;

删除好友

  1. /*!
  2. * @abstract 删除好友
  3. *
  4. * @param username 好友username
  5. * @param userAppKey 好友所在应用appkey,不传则默认是本应用
  6. *
  7. * @param handler 结果回调。回调参数:
  8. *
  9. * - resultObject 相应对象
  10. * - error 错误信息
  11. *
  12. * 如果 error 为 nil, 表示设置成功
  13. * 如果 error 不为 nil,表示设置失败
  14. *
  15. * @discussion
  16. */
  17. + (void)removeFriendWithUsername:(NSString *)username
  18. appKey:(NSString *)userAppKey
  19. completionHandler:(JMSGCompletionHandler)handler;

更新好友备注名/备注信息

设置好友备注名和备注信息的接口在 ">JMSGUser - 好友备注 类中。

好友备注名

获取
  1. /*!
  2. * @abstract 备注名
  3. */
  4. @property(nonatomic, copy, readonly) NSString * JMSG_NULLABLE noteName;
设置
  1. /*!
  2. * @abstract 修改好友备注名
  3. *
  4. * @param noteName 备注名
  5. *
  6. * @discussion 注意:这是建立在是好友关系的前提下,修改好友的备注名
  7. */
  8. - (void)updateNoteName:(NSString *)noteName completionHandler:(JMSGCompletionHandler)handler;

好友备注信息

获取
  1. /*!
  2. * @abstract 备注信息
  3. */
  4. @property(nonatomic, copy, readonly) NSString * JMSG_NULLABLE noteText;
设置
  1. /*!
  2. * @abstract 修改好友备注信息
  3. *
  4. * @param noteText 备注信息
  5. *
  6. * @discussion 注意:这是建立在是好友关系的前提下,修改好友的备注信息
  7. */
  8. - (void)updateNoteText:(NSString *)noteText completionHandler:(JMSGCompletionHandler)handler;

好友相关通知事件

好友相关的事件具体请查看 事件与代理 - 好友事件

注意:好友相关事件 SDK 并没有做本地化存储,上层想要做记录这些事件,则需要上层自己实现存储。