123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995 |
- #import <Foundation/Foundation.h>
- #import "WFCCMessage.h"
- #import "WFCCGroupInfo.h"
- #import "WFCCConversationInfo.h"
- #import "WFCCUserInfo.h"
- #import "WFCCFriendRequest.h"
- #import "WFCCConversationSearchInfo.h"
- #import "WFCCGroupMember.h"
- #import "WFCCGroupSearchInfo.h"
- #import "WFCCChatroomInfo.h"
- #import "WFCCChatroomMemberInfo.h"
- #import "WFCCUnreadCount.h"
- #import "WFCCChannelInfo.h"
- #pragma mark - 频道通知定义
- extern NSString *kSendingMessageStatusUpdated;
- extern NSString *kConnectionStatusChanged;
- extern NSString *kReceiveMessages;
- extern NSString *kRecallMessages;
- #pragma mark - 枚举值定义
- typedef NS_ENUM(NSInteger, ModifyMyInfoType) {
- Modify_DisplayName = 0,
- Modify_Portrait = 1,
- Modify_Gender = 2,
- Modify_Mobile = 3,
- Modify_Email = 4,
- Modify_Address = 5,
- Modify_Company = 6,
- Modify_Social = 7,
- Modify_Extra = 8
- };
- typedef NS_ENUM(NSInteger, ModifyGroupInfoType) {
- Modify_Group_Name = 0,
- Modify_Group_Portrait = 1,
- Modify_Group_Extra = 2
- };
- typedef NS_ENUM(NSInteger, ModifyChannelInfoType) {
- Modify_Channel_Name = 0,
- Modify_Channel_Portrait = 1,
- Modify_Channel_Desc = 2,
- Modify_Channel_Extra = 3,
- Modify_Channel_Secret = 4,
- Modify_Channel_Callback = 5
- };
- typedef NS_ENUM(NSInteger, UserSettingScope) {
-
- UserSettingScope_Conversation_Silent = 1,
-
- UserSettingScope_Global_Silent = 2,
-
-
- UserSettingScope_Conversation_Top = 3,
-
- UserSettingScope_Hidden_Notification_Detail = 4,
-
- UserSettingScope_Group_Hide_Nickname = 5,
-
- UserSettingScope_Favourite_Group = 6,
-
-
- UserSettingScope_Conversation_Sync = 7,
-
- UserSettingScope_My_Channel = 8,
-
- UserSettingScope_Listened_Channel = 9,
-
-
-
- UserSettingScope_Custom_Begin = 1000
- } ;
- #pragma mark - 用户源
- @protocol WFCCUserSource <NSObject>
- - (WFCCUserInfo *)getUserInfo:(NSString *)userId
- refresh:(BOOL)refresh;
- - (void)searchUser:(NSString *)keyword
- success:(void(^)(NSArray<WFCCUserInfo *> *machedUsers))successBlock
- error:(void(^)(int errorCode))errorBlock;
- -(void)modifyMyInfo:(NSDictionary<NSNumber *, NSString *> *)values
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- @end
- #pragma mark - IM服务
- @interface WFCCIMService : NSObject
- + (WFCCIMService*)sharedWFCIMService;
- @property(nonatomic, weak)id<WFCCUserSource> userSource;
- #pragma mark - 会话相关
- - (NSArray<WFCCConversationInfo *> *)getConversationInfos:(NSArray<NSNumber *> *)conversationTypes
- lines:(NSArray<NSNumber *> *)lines;
- - (WFCCConversationInfo *)getConversationInfo:(WFCCConversation *)conversation;
- - (NSArray<WFCCConversationSearchInfo *> *)searchConversation:(NSString *)keyword inConversation:(NSArray<NSNumber *> *)conversationTypes lines:(NSArray<NSNumber *> *)lines;
- - (void)removeConversation:(WFCCConversation *)conversation
- clearMessage:(BOOL)clearMessage;
- - (void)setConversation:(WFCCConversation *)conversation
- top:(BOOL)top
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)setConversation:(WFCCConversation *)conversation
- silent:(BOOL)silent
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)setConversation:(WFCCConversation *)conversation
- draft:(NSString *)draft;
- #pragma mark - 未读数相关
- - (WFCCUnreadCount *)getUnreadCount:(NSArray<NSNumber *> *)conversationTypes
- lines:(NSArray<NSNumber *> *)lines;
- - (WFCCUnreadCount *)getUnreadCount:(WFCCConversation *)conversation;
- - (void)clearUnreadStatus:(WFCCConversation *)conversation;
- - (void)clearAllUnreadStatus;
- - (void)setMediaMessagePlayed:(long)messageId;
- #pragma mark - 消息相关
- - (NSArray<WFCCMessage *> *)getMessages:(WFCCConversation *)conversation
- contentTypes:(NSArray<NSNumber *> *)contentTypes
- from:(NSUInteger)fromIndex
- count:(NSInteger)count
- withUser:(NSString *)user;
- - (NSArray<WFCCMessage *> *)getRemoteMessages:(WFCCConversation *)conversation
- before:(long long)beforeMessageUid
- count:(NSUInteger)count;
- - (WFCCMessage *)getMessage:(long)messageId;
- - (WFCCMessage *)getMessageByUid:(long long)messageUid;
- - (NSArray<WFCCMessage *> *)searchMessage:(WFCCConversation *)conversation
- keyword:(NSString *)keyword;
- - (WFCCMessage *)send:(WFCCConversation *)conversation
- content:(WFCCMessageContent *)content
- success:(void(^)(long long messageUid, long long timestamp))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (WFCCMessage *)sendMedia:(WFCCConversation *)conversation
- content:(WFCCMessageContent *)content
- success:(void(^)(long long messageUid, long long timestamp))successBlock
- progress:(void(^)(long uploaded, long total))progressBlock
- error:(void(^)(int error_code))errorBlock;
- - (WFCCMessage *)send:(WFCCConversation *)conversation
- content:(WFCCMessageContent *)content
- expireDuration:(int)expireDuration
- success:(void(^)(long long messageUid, long long timestamp))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (WFCCMessage *)send:(WFCCConversation *)conversation
- content:(WFCCMessageContent *)content
- toUser:(NSString *)toUser
- expireDuration:(int)expireDuration
- success:(void(^)(long long messageUid, long long timestamp))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (WFCCMessage *)sendMedia:(WFCCConversation *)conversation
- content:(WFCCMessageContent *)content
- expireDuration:(int)expireDuration
- success:(void(^)(long long messageUid, long long timestamp))successBlock
- progress:(void(^)(long uploaded, long total))progressBlock
- error:(void(^)(int error_code))errorBlock;
- - (WFCCMessage *)sendMedia:(WFCCConversation *)conversation
- content:(WFCCMessageContent *)content
- toUser:(NSString *)toUser
- expireDuration:(int)expireDuration
- success:(void(^)(long long messageUid, long long timestamp))successBlock
- progress:(void(^)(long uploaded, long total))progressBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)recall:(WFCCMessage *)message
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)uploadMedia:(NSData *)mediaData
- mediaType:(WFCCMediaType)mediaType
- success:(void(^)(NSString *remoteUrl))successBlock
- progress:(void(^)(long uploaded, long total))progressBlock
- error:(void(^)(int error_code))errorBlock;
- - (BOOL)deleteMessage:(long)messageId;
- - (void)clearMessages:(WFCCConversation *)conversation;
- - (void)registerMessageContent:(Class)contentClass;
- - (WFCCMessageContent *)messageContentFromPayload:(WFCCMessagePayload *)payload;
- - (WFCCMessage *)insert:(WFCCConversation *)conversation
- sender:(NSString *)sender
- content:(WFCCMessageContent *)content
- status:(WFCCMessageStatus)status
- notify:(BOOL)notify
- serverTime:(long long)serverTime;
- - (void)updateMessage:(long)messageId
- content:(WFCCMessageContent *)content;
- #pragma mark - 用户相关
- - (WFCCUserInfo *)getUserInfo:(NSString *)userId
- refresh:(BOOL)refresh;
- - (void)searchUser:(NSString *)keyword
- success:(void(^)(NSArray<WFCCUserInfo *> *machedUsers))successBlock
- error:(void(^)(int errorCode))errorBlock;
- #pragma mark - 好友相关
- - (BOOL)isMyFriend:(NSString *)userId;
- - (NSArray<NSString *> *)getMyFriendList:(BOOL)refresh;
- - (NSArray<WFCCUserInfo *> *)searchFriends:(NSString *)keyword;
- - (NSArray<WFCCGroupSearchInfo *> *)searchGroups:(NSString *)keyword;
- - (NSArray<WFCCFriendRequest *> *)getIncommingFriendRequest;
- - (NSArray<WFCCFriendRequest *> *)getOutgoingFriendRequest;
- - (void)loadFriendRequestFromRemote;
- - (int)getUnreadFriendRequestStatus;
- - (void)clearUnreadFriendRequestStatus;
- - (void)deleteFriend:(NSString *)userId
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)sendFriendRequest:(NSString *)userId
- reason:(NSString *)reason
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)handleFriendRequest:(NSString *)userId
- accept:(BOOL)accpet
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (BOOL)isBlackListed:(NSString *)userId;
- - (NSArray<NSString *> *)getBlackList:(BOOL)refresh;
- - (void)setBlackList:(NSString *)userId
- isBlackListed:(BOOL)isBlackListed
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- #pragma mark - 群相关
- - (NSArray<WFCCGroupMember *> *)getGroupMembers:(NSString *)groupId
- forceUpdate:(BOOL)forceUpdate;
- - (WFCCGroupInfo *)getGroupInfo:(NSString *)groupId
- refresh:(BOOL)refresh;
- - (WFCCGroupMember *)getGroupMember:(NSString *)groupId
- memberId:(NSString *)memberId;
- - (void)createGroup:(NSString *)groupId
- name:(NSString *)groupName
- portrait:(NSString *)groupPortrait
- members:(NSArray *)groupMembers
- notifyLines:(NSArray<NSNumber *> *)notifyLines
- notifyContent:(WFCCMessageContent *)notifyContent
- success:(void(^)(NSString *groupId))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)addMembers:(NSArray *)members
- toGroup:(NSString *)groupId
- notifyLines:(NSArray<NSNumber *> *)notifyLines
- notifyContent:(WFCCMessageContent *)notifyContent
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)kickoffMembers:(NSArray *)members
- fromGroup:(NSString *)groupId
- notifyLines:(NSArray<NSNumber *> *)notifyLines
- notifyContent:(WFCCMessageContent *)notifyContent
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)quitGroup:(NSString *)groupId
- notifyLines:(NSArray<NSNumber *> *)notifyLines
- notifyContent:(WFCCMessageContent *)notifyContent
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)dismissGroup:(NSString *)groupId
- notifyLines:(NSArray<NSNumber *> *)notifyLines
- notifyContent:(WFCCMessageContent *)notifyContent
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)modifyGroupInfo:(NSString *)groupId
- type:(ModifyGroupInfoType)type
- newValue:(NSString *)newValue
- notifyLines:(NSArray<NSNumber *> *)notifyLines
- notifyContent:(WFCCMessageContent *)notifyContent
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)modifyGroupAlias:(NSString *)groupId
- alias:(NSString *)newAlias
- notifyLines:(NSArray<NSNumber *> *)notifyLines
- notifyContent:(WFCCMessageContent *)notifyContent
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)transferGroup:(NSString *)groupId
- to:(NSString *)newOwner
- notifyLines:(NSArray<NSNumber *> *)notifyLines
- notifyContent:(WFCCMessageContent *)notifyContent
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (NSArray<NSString *> *)getFavGroups;
- - (BOOL)isFavGroup:(NSString *)groupId;
- - (void)setFavGroup:(NSString *)groupId fav:(BOOL)fav success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock;
- #pragma mark - 个人设置相关
- - (NSString *)getUserSetting:(UserSettingScope)scope
- key:(NSString *)key;
- - (NSDictionary<NSString *, NSString *> *)getUserSettings:(UserSettingScope)scope;
- - (void)setUserSetting:(UserSettingScope)scope
- key:(NSString *)key
- value:(NSString *)value
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- -(void)modifyMyInfo:(NSDictionary<NSNumber *, NSString *> *)values
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (BOOL)isGlobalSlient;
- - (void)setGlobalSlient:(BOOL)slient
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (BOOL)isHiddenNotificationDetail;
- - (void)setHiddenNotificationDetail:(BOOL)hidden
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (BOOL)isHiddenGroupMemberName:(NSString *)groupId;
- - (void)setHiddenGroupMemberName:(BOOL)hidden
- group:(NSString *)groupId
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- #pragma mark - 聊天室相关
- - (void)joinChatroom:(NSString *)chatroomId
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)quitChatroom:(NSString *)chatroomId
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)getChatroomInfo:(NSString *)chatroomId
- upateDt:(long long)updateDt
- success:(void(^)(WFCCChatroomInfo *chatroomInfo))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)getChatroomMemberInfo:(NSString *)chatroomId
- maxCount:(int)maxCount
- success:(void(^)(WFCCChatroomMemberInfo *memberInfo))successBlock
- error:(void(^)(int error_code))errorBlock;
- #pragma mark - 频道相关
- - (void)createChannel:(NSString *)channelName
- portrait:(NSString *)channelPortrait
- status:(int)status
- desc:(NSString *)desc
- extra:(NSString *)extra
- success:(void(^)(WFCCChannelInfo *channelInfo))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (WFCCChannelInfo *)getChannelInfo:(NSString *)channelId
- refresh:(BOOL)refresh;
- - (void)modifyChannelInfo:(NSString *)channelId
- type:(ModifyChannelInfoType)type
- newValue:(NSString *)newValue
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- - (void)searchChannel:(NSString *)keyword success:(void(^)(NSArray<WFCCChannelInfo *> *machedChannels))successBlock error:(void(^)(int errorCode))errorBlock;
- - (BOOL)isListenedChannel:(NSString *)channelId;
- - (void)listenChannel:(NSString *)channelId listen:(BOOL)listen success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock;
- - (NSArray<NSString *> *)getMyChannels;
- - (NSArray<NSString *> *)getListenedChannels;
- - (void)destoryChannel:(NSString *)channelId
- success:(void(^)(void))successBlock
- error:(void(^)(int error_code))errorBlock;
- @end
|