/************************************************************ * * Hyphenate CONFIDENTIAL * __________________ * Copyright (C) 2016 Hyphenate Inc. All rights reserved. * * NOTICE: All information contained herein is, and remains * the property of Hyphenate Inc. * Dissemination of this information or reproduction of this material * is strictly forbidden unless prior written permission is obtained * from Hyphenate Inc. */ //#import //#import //#if ENABLE_LITE == 1 //#import //#else //#import //#endif /** @brief 登录状态变更的通知 */ #define KNOTIFICATION_LOGINCHANGE @"loginStateChange" /** @brief 实时音视频呼叫 */ #define KNOTIFICATION_CALL @"callOutWithChatter" /** @brief 关闭实时音视频 */ #define KNOTIFICATION_CALL_CLOSE @"callControllerClose" /** @brief 群组消息ext的字段,用于存放被@的环信id数组 */ #define kGroupMessageAtList @"em_at_list" /** @brief 群组消息ext字典中,kGroupMessageAtList字段的值,用于@所有人 */ #define kGroupMessageAtAll @"all" /** @brief 注册SDK时,是否允许控制台输出log */ #define kSDKConfigEnableConsoleLogger @"SDKConfigEnableConsoleLogger" /** @brief 使用的SDK是否为Lite版本(即不包含实时音视频功能) */ #define kEaseUISDKConfigIsUseLite @"isUselibHyphenateClientSDKLite" @interface EaseSDKHelper : NSObject /** @brief 当前是否有imagePickerViewController弹出 */ @property (nonatomic) BOOL isShowingimagePicker; /** @brief 使用的SDK是否为Lite版本(即不包含实时音视频功能) */ @property (nonatomic) BOOL isLite; + (instancetype)shareHelper; #pragma mark - init Hyphenate /*! @method @brief 注册3.xSDK,注册远程通知 @param application UIApplication对象 @param launchOptions 启动配置(传入AppDelegate中启动回调的参数,可选) @param appkey 已注册的appkey @param apnsCertName 上传的推送证书名 @param otherConfig 注册SDK的额外配置(此方法目前只解析了kSDKConfigEnableConsoleLogger字段) */ - (void)hyphenateApplication:(UIApplication *)application appkey:(NSString *)appkey apnsCertName:(NSString *)apnsCertName; #pragma mark - receive remote notification /*! @method @brief 程序在前台收到APNs时,需要调用此方法 @param application UIApplication @param userInfo 推送内容 */ - (void)hyphenateApplication:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo; /// 点击登陆后的操作 - 登录环信 /// @param username <#username description#> /// @param password <#password description#> - (void)loginEaseWithUsername:(NSString *)username password:(NSString *)password; /// 退出环信 - (void)easeLogout; /*! @method @brief 构建待发送的文本消息 @discussion 向环信id为to的用户发送文本消息 @param text 待发送的文本信息 @param to 消息的接收方环信id @param messageType 消息的聊天类型 @param messageExt 消息的扩展属性 @result 返回构建完成的消息 */ + (EMMessage *)sendTextMessage:(NSString *)text to:(NSString *)to messageType:(EMChatType)messageType messageExt:(NSDictionary *)messageExt; /*! @method @brief 构建待发送的透传消息 @discussion 向环信id为to的用户发送透传消息 @param action 透传消息的命令内容 @param to 消息的接收方环信id @param messageType 消息的聊天类型 @param messageExt 消息的扩展属性 @param cmdParams 透传消息命令参数,只是为了兼容老版本,应该使用EMMessage的扩展属性来代替 @result 返回构建完成的消息 */ + (EMMessage *)sendCmdMessage:(NSString *)action to:(NSString *)to messageType:(EMChatType)messageType messageExt:(NSDictionary *)messageExt cmdParams:(NSArray *)params; /*! @method @brief 构建待发送的位置消息 @discussion 向环信id为to的用户发送位置消息 @param latitude 纬度 @param longitude 经度 @param address 地址信息 @param to 消息的接收方环信id @param messageType 消息的聊天类型 @param messageExt 消息的扩展属性 @result 返回构建完成的消息 */ + (EMMessage *)sendLocationMessageWithLatitude:(double)latitude longitude:(double)longitude address:(NSString *)address to:(NSString *)to messageType:(EMChatType)messageType messageExt:(NSDictionary *)messageExt; /*! @method @brief 构建待发送的图片消息 @discussion 向环信id为to的用户发送图片消息 @param imageData 图片数据(NSData对象) @param to 消息的接收方环信id @param messageType 消息的聊天类型 @param messageExt 消息的扩展属性 @result 返回构建完成的消息 */ + (EMMessage *)sendImageMessageWithImageData:(NSData *)imageData to:(NSString *)to messageType:(EMChatType)messageType messageExt:(NSDictionary *)messageExt; /*! @method @brief 构建待发送的图片消息 @discussion 向环信id为to的用户发送图片消息 @param image 图片(UIImage对象) @param to 消息的接收方环信id @param messageType 消息的聊天类型 @param messageExt 消息的扩展属性 @result 返回构建完成的消息 */ + (EMMessage *)sendImageMessageWithImage:(UIImage *)image to:(NSString *)to messageType:(EMChatType)messageType messageExt:(NSDictionary *)messageExt; /*! @method @brief 构建待发送的语音消息 @discussion 向环信id为to的用户发送语音消息 @param localPath 录制的语音文件本地路径 @param duration 语音时长 @param to 消息的接收方环信id @param messageType 消息的聊天类型 @param messageExt 消息的扩展属性 @result 返回构建完成的消息 */ + (EMMessage *)sendVoiceMessageWithLocalPath:(NSString *)localPath duration:(NSInteger)duration to:(NSString *)to messageType:(EMChatType)messageType messageExt:(NSDictionary *)messageExt; // 将得到的deviceToken传给SDK - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken ; /// 获取所有会话列表 - (NSArray*)getAllConversations; /// 发送消息 /// @param aMessage <#aMessage description#> /// @param aProgressBlock <#aProgressBlock description#> /// @param aCompletionBlock <#aCompletionBlock description#> + (void)sendMessage:(EMMessage *)aMessage progress:(void (^)(int progress))aProgressBlock completion:(void (^)(EMMessage *message, EMError *error))aCompletionBlock; @end