单军华
2018-07-11 7b02207537d35bfa1714bf8beafc921f717d100a
screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Helper/EaseSDKHelper.h
New file
@@ -0,0 +1,193 @@
/************************************************************
 *  * 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 <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#if ENABLE_LITE == 1
#import <HyphenateLite/HyphenateLite.h>
#else
#import <Hyphenate/Hyphenate.h>
#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<EMClientDelegate>
/** @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
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
                    appkey:(NSString *)appkey
              apnsCertName:(NSString *)apnsCertName
               otherConfig:(NSDictionary *)otherConfig;
#pragma mark - receive remote notification
/*!
 @method
 @brief 程序在前台收到APNs时,需要调用此方法
 @param application  UIApplication
 @param userInfo     推送内容
 */
- (void)hyphenateApplication:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo;
#pragma mark - send message
/*!
 @method
 @brief 构建待发送的文本消息
 @discussion        向环信id为to的用户发送文本消息
 @param text        待发送的文本信息
 @param to          消息的接收方环信id
 @param messageType 消息的聊天类型
 @param messageExt  消息的扩展属性
 @result 返回构建完成的消息
 */
+ (EMMessage *)getTextMessage:(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 *)getCmdMessage:(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 *)getLocationMessageWithLatitude:(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 *)getImageMessageWithImageData:(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 *)getImageMessageWithImage:(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 *)getVoiceMessageWithLocalPath:(NSString *)localPath
                                   duration:(NSInteger)duration
                                         to:(NSString *)to
                                messageType:(EMChatType)messageType
                                 messageExt:(NSDictionary *)messageExt;
/*!
 @method
 @brief 构建待发送的视频消息
 @discussion        向环信id为to的用户发送视频消息
 @param url         视频文件本地路径url
 @param to          消息的接收方环信id
 @param messageType 消息的聊天类型
 @param messageExt  消息的扩展属性
 @result 返回构建完成的消息
 */
+ (EMMessage *)getVideoMessageWithURL:(NSURL *)url
                                   to:(NSString *)to
                          messageType:(EMChatType)messageType
                           messageExt:(NSDictionary *)messageExt;
#pragma mark - call
@end