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.
138 lines
3.9 KiB
138 lines
3.9 KiB
1 year ago
|
//
|
||
|
// 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
|
||
|
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|