You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
3.9 KiB
137 lines
3.9 KiB
// |
|
// JCAccount.h |
|
// JCSDKOC |
|
// |
|
// Created by Ginger on 2018/6/8. |
|
// Copyright © 2018年 juphoon. All rights reserved. |
|
// |
|
|
|
#import <Foundation/Foundation.h> |
|
#import "JCAccountCallback.h" |
|
#import "JCAccountItem.h" |
|
|
|
/** |
|
* @defgroup 账号模块 |
|
* @{ |
|
* 用于管理账号 |
|
*/ |
|
|
|
/** |
|
* 账号类 |
|
*/ |
|
@interface JCAccount : NSObject |
|
|
|
/** |
|
* 创建 JCAccount 对象 |
|
* |
|
* JCAccount 的所有接口函数,如无特殊说明,都建议在主线程调用 |
|
* |
|
* @param callback JCAccountCallback 回调接口,用于回调相关通知 |
|
* @return JCAccount 对象 |
|
* @exception "JCCallCallback 传空会出现调用失败" |
|
*/ |
|
+ (JCAccount* __nullable)create:(id<JCAccountCallback> __nonnull)callback; |
|
|
|
/** |
|
* 销毁 JCAccount 对象 |
|
* |
|
* 该方法为同步调用,需要等待 JCAccount 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCAccount 的其它方法和回调。<br> |
|
* 我们 **不建议** 在 JCSDK 的回调中调用此方法销毁 JCAccount 对象,否则会出现崩溃。<br> |
|
* 如需在销毁后再次创建 JCAccount 实例,需要等待 @ref destroy 方法执行结束后再创建实例。 |
|
*/ |
|
+ (void)destroy; |
|
|
|
/** |
|
* 查询账号状态 |
|
* |
|
* @param userIdArray 查询的账号列表 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCAccountCallback#onQueryUserStatusResult:result:accountItemList: onQueryUserStatusResult} 通知 |
|
* - -1:调用失败,不会收到回调 |
|
*/ |
|
- (int)queryUserStatus:(NSArray<NSString*>* __nonnull)userIdArray; |
|
|
|
/** |
|
* 查询账号在服务器上的 uid |
|
* |
|
* @param userIdArray 查询的账号列表 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCAccountCallback#onQueryServerUidResult:result:serverUids: onQueryServerUidResult} 通知 |
|
* - -1:调用失败,不会收到回调 |
|
*/ |
|
- (int)queryServerUid:(NSArray<NSString*>* __nonnull)userIdArray; |
|
|
|
/** |
|
* 查询账号 userId |
|
* |
|
* @param serverUidArray 查询的账号列表 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCAccountCallback#onQueryUserIdResult:result:userIds: onQueryUserIdResult} 通知 |
|
* - -1:调用失败,不会收到回调 |
|
*/ |
|
- (int)queryUserId:(NSArray<NSString*>* __nonnull)serverUidArray; |
|
|
|
/** |
|
* 查询所有的联系人(支持增量) |
|
* |
|
* @param lastQueryTime 上次更新时间戳 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCAccountCallback#onRefreshContacts:result:contacts:updateTime:fullUpdate: onRefreshContacts} 通知 |
|
* - -1:调用失败,不会收到回调 |
|
*/ |
|
- (int)refreshContacts:(long)lastQueryTime; |
|
|
|
/** |
|
* 操作联系人 |
|
* |
|
* @param contact 联系人对象 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCAccountCallback#onDealContact:result:reason: onDealContact} 通知 |
|
* - -1:调用失败,当方法入参 JCAccountContact 传空时出现调用失败,不会收到回调 |
|
*/ |
|
- (int)dealContact:(JCAccountContact* __nonnull)contact; |
|
|
|
/** |
|
* 设置免打扰 |
|
* |
|
* @param serverUid 服务器自己的 uid |
|
* @param dnd 是否免打扰 |
|
* - true:设置免打扰, |
|
* - false:取消免打扰 |
|
* @return |
|
* - >0:操作id,结果通过 {@link JCAccountCallback#onSetContactDnd:result:reason: onSetContactDnd} 通知 |
|
* - -1:调用失败,不会收到回调 |
|
*/ |
|
- (int)setDnd:(NSString* __nonnull)serverUid dnd:(bool)dnd; |
|
|
|
/// @cond Doxygen_All |
|
/** |
|
* 设置自己自定义状态 |
|
* |
|
* @param customStatus 自定义状态类型, @ref JCAccountCustomStatusType "自定义状态" |
|
* @param value 自定义状态值 |
|
* @return 操作是否成功 |
|
*/ |
|
- (bool)setCustomStatus:(JCAccountCustomStatusType)customStatus value:(NSString *_Nonnull)value; |
|
/// @endcond |
|
|
|
/** |
|
* 添加回调 |
|
* |
|
* @param callback JCAccountCallback 接口对象 |
|
*/ |
|
- (void)addCallback:(id<JCAccountCallback> __nonnull)callback; |
|
|
|
/** |
|
* 删除回调 |
|
* |
|
* @param callback JCAccountCallback 接口对象 |
|
*/ |
|
- (void)removeCallback:(id<JCAccountCallback> __nonnull)callback; |
|
|
|
|
|
@end |
|
|
|
/** |
|
* @} |
|
*/
|
|
|