• 用户信息管理
    • 概述
      • 获取当前登录账号的用户信息
      • 获取用户信息
        • 批量获取用户信息
        • 获取本地用户信息
        • 获取当前用户信息
      • 更新用户信息
      • 更新用户密码
      • 用户头像管理
        • 更新用户头像
        • 获取头像
        • 上传头像
        • 获取头像本地路径
      • 黑名单管理
        • 添加黑名单
        • 删除删除
        • 获取黑名单列表
      • 免打扰设置
        • 用户设置免打扰
        • 获取免打扰列表
        • 设置全局免打扰

    用户信息管理

    概述

    • 开发者应用的用户,通过username / password 注册到 JMessage后,SDK 侧可以发起注册,服务器端也可发起批量注册。
    • 用户登录 App,也同时登录 JMessage。登录后可以向其他 username 发聊天消息,也可以收到来自其他 username 或者群组的消息。
    • 用户 A 是否有权限向用户 B 发消息,需由开发者的App 自己控制。
    • 开发者可选择将用户头像等用户信息同步更新到 JMessage。

    获取当前登录账号的用户信息

    此接口会直接从本地返回当前已经登录的用户的信息

    1. /*!
    2. * @abstract 获取用户本身个人信息接口
    3. *
    4. * @return 当前登陆账号个人信息
    5. *
    6. * @discussion 注意:返回值有可能为空
    7. */
    8. + (JMSGUser *)myInfo;

    获取用户信息

    批量获取用户信息

    异步从后台获取用户信息,此接口可用来获取不同appkey下用户的信息,如果appKey为空,则默认获取当前appkey下的用户信息

    1. /*!
    2. * @abstract 批量获取用户信息
    3. *
    4. * @param usernameArray 用户名列表。NSArray 里的数据类型为 NSString
    5. * @param handler 结果回调。正常返回时 resultObject 的类型为 NSArray,数组里的数据类型为 JMSGUser
    6. *
    7. * @discussion 这是一个批量接口。
    8. */
    9. + (void)userInfoArrayWithUsernameArray:(NSArray JMSG_GENERIC(__kindof NSString *)*)usernameArray
    10. completionHandler:(JMSGCompletionHandler)handler;

    获取本地用户信息

    可以通过 uid 快速获取本地用户信息。

    1. +(JMSGUser *JMSG_NULLABLE)userWithUid:(SInt64)uid;

    获取当前用户信息

    获取当前登录用户的信息,可以用户上层判断本地是否登录,可能返回为空。

    1. /*!
    2. * @abstract 获取用户本身个人信息接口
    3. *
    4. * @return 当前登陆账号个人信息
    5. *
    6. * @discussion 注意:返回值有可能为空
    7. */
    8. + (JMSGUser *)myInfo;

    更新用户信息

    用户的昵称、性别、生日、签名等,可通过此接口更新

    1. /*!
    2. * @abstract 更新用户信息(支持将字段统一上传)
    3. *
    4. * @param userInfo 用户信息对象,类型是 JMSGUserInfo
    5. * @param handler 更新用户信息回调接口函数
    6. *
    7. * @discussion 参数 userInfo 是 JMSGUserInfo 类,JMSGUserInfo 仅可用于修改用户信息
    8. */
    9. + (void)updateMyInfoWithUserInfo:(JMSGUserInfo *)userInfo
    10. completionHandler:(JMSGCompletionHandler)handler;

    更新用户密码

    1. /*!
    2. * @abstract 更新密码接口
    3. *
    4. * @param newPassword 用户新的密码
    5. * @param oldPassword 用户旧的密码
    6. * @param handler 更新密码回调接口函数
    7. */
    8. + (void)updateMyPasswordWithNewPassword:(NSString *)newPassword
    9. oldPassword:(NSString *)oldPassword
    10. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;

    用户头像管理

    更新用户头像

    头像更新,也可以使用此接口更新

    1. /*!
    2. * @abstract 更新头像(支持传图片格式)
    3. *
    4. * @param avatarData 头像数据
    5. * @param avatarFormat 头像格式,可以为空,不包括"."
    6. * @param handler 回调
    7. *
    8. * @discussion 头像格式参数直接填格式名称,不要带点。正确:@"png",错误:@".png"
    9. */
    10. + (void)updateMyAvatarWithData:(NSData *)avatarData
    11. avatarFormat:(NSString *)avatarFormat
    12. completionHandler:(JMSGCompletionHandler)handler;

    获取头像

    1. /*!
    2. * @abstract 获取头像缩略图文件数据
    3. *
    4. * @param handler 结果回调。回调参数:
    5. *
    6. * - data 头像数据;
    7. * - objectId 用户username;
    8. * - error 不为nil表示出错;
    9. *
    10. * 如果 error 为 ni, data 也为 nil, 表示没有头像数据.
    11. *
    12. * @discussion 需要展示缩略图时使用。
    13. * 如果本地已经有文件,则会返回本地,否则会从服务器上下载。
    14. */
    15. - (void)thumbAvatarData:(JMSGAsyncDataHandler)handler;

    上传头像

    与更新头像相同 更新头像

    获取头像本地路径

    1. /*!
    2. * @abstract 获取头像缩略文件的本地路径
    3. *
    4. * @return 返回本地路,返回值只有在下载完成之后才有意义
    5. */
    6. - (NSString *JMSG_NULLABLE)thumbAvatarLocalPath;

    黑名单管理

    添加黑名单

    1. /*!
    2. * @abstract 添加黑名单
    3. * @param usernameArray 作用对象的username数组
    4. * @param handler 结果回调。回调参数: error 为 nil, 表示设置成功
    5. *
    6. * @discussion 可以一次添加多个用户
    7. */
    8. + (void)addUsersToBlacklist:(NSArray JMSG_GENERIC(__kindof NSString *)*)usernameArray
    9. completionHandler:(JMSGCompletionHandler)handler;

    删除删除

    1. /*!
    2. * @abstract 删除黑名单
    3. * @param usernameArray 作用对象的username数组
    4. * @param handler 结果回调。回调参数:error 为 nil, 表示设置成功
    5. *
    6. * @discussion 可以一次删除多个黑名单用户
    7. */
    8. + (void)delUsersFromBlacklist:(NSArray JMSG_GENERIC(__kindof NSString *)*)usernameArray
    9. 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)blackList:(JMSGCompletionHandler)handler;

    免打扰设置

    可以将用户/群组添加到“免打扰”列表中,收到免打扰用户/群组发过来的消息时,将不会有通知栏通知,但消息事件照常下发。 设置全局免打扰之后,收到所有消息都将不会有通知栏通知,效果类似。

    用户设置免打扰

    1. /*!
    2. * @abstract 设置用户免打扰(支持跨应用设置)
    3. *
    4. * @param isNoDisturb 是否全局免打扰 YES:是 NO: 否
    5. * @param handler 结果回调。回调参数: error 为 nil, 表示设置成功
    6. *
    7. * @discussion 针对单个用户设置免打扰,这个接口支持跨应用设置免打扰
    8. */
    9. - (void)setIsNoDisturb:(BOOL)isNoDisturb handler:(JMSGCompletionHandler)handler;

    获取免打扰列表

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

    设置全局免打扰

    设置全局免打扰后,APP 将不会收到任何通知

    1. /*!
    2. * @abstract 设置是否全局免打扰
    3. *
    4. * @param isNoDisturb 是否全局免打扰 YES:是 NO: 否
    5. * @param handler 结果回调。回调参数:error 不为 nil,表示设置失败
    6. *
    7. * @discussion 此函数为设置全局的消息免打扰,建议开发者在 SDK 完全启动之后,再调用此接口获取数据
    8. */
    9. + (void)setIsGlobalNoDisturb:(BOOL)isNoDisturb handler:(JMSGCompletionHandler)handler;