Commit 4e70cf5246b845cd3e6ee9dbf50606273d5af372
1 parent
e7f548f1
更新
Showing
7 changed files
with
215 additions
and
12 deletions
CNLiveChatSDKDemo/CNLiveChatSDKDemo/AppDelegate.m
发布版SDK/CNLiveChatManager.framework/CNLiveChatManager
No preview for this file type
发布版SDK/CNLiveChatManager.framework/Headers/CNLiveChatManager.h
| ... | ... | @@ -10,6 +10,7 @@ |
| 10 | 10 | #import "CNLiveChatUserInfo.h" |
| 11 | 11 | #import "CNLiveChatStatusDefine.h" |
| 12 | 12 | #import "CNLiveChatMessage.h" |
| 13 | +#import "CNliveChatImageMessage.h" | |
| 13 | 14 | |
| 14 | 15 | @protocol CNLiveChatManagerDelegate <NSObject> |
| 15 | 16 | |
| ... | ... | @@ -45,7 +46,7 @@ |
| 45 | 46 | |
| 46 | 47 | @param message 消息实体类型对象(包括消息内容,消息ID,会话类型,目标ID,发送者的用户信息) |
| 47 | 48 | */ |
| 48 | -- (void)onReceived:(CNLiveChatMessage *)message; | |
| 49 | +- (void)onReceived:(id)message; | |
| 49 | 50 | |
| 50 | 51 | |
| 51 | 52 | /** |
| ... | ... | @@ -107,7 +108,7 @@ |
| 107 | 108 | |
| 108 | 109 | |
| 109 | 110 | /** |
| 110 | - 初始化SDK方法 | |
| 111 | + 初始化SDK方法(同上,区别:可以选择测试环境/上线环境) | |
| 111 | 112 | |
| 112 | 113 | @param appKey 从视讯云平台获取到的appKey |
| 113 | 114 | @param appId 从视讯云平台获取到的appId |
| ... | ... | @@ -199,22 +200,41 @@ |
| 199 | 200 | |
| 200 | 201 | |
| 201 | 202 | /** |
| 202 | - 发送消息 | |
| 203 | + 发送文本或语音消息 | |
| 203 | 204 | |
| 204 | - @param message 消息内容 | |
| 205 | + @param message 消息内容(文本消息 CNLiveChatMessage / 语音消息 CNLiveChatVoiceMessage) | |
| 205 | 206 | @param type 会话类型(私聊 / 聊天室) |
| 206 | 207 | @param targetId 会话目标ID(私聊:用户ID / 聊天室:聊天室ID) |
| 207 | 208 | @param successBlock 发送消息成功的回调,消息实体类型对象(包括消息内容,消息ID,会话类型,目标ID,发送者的用户信息) |
| 208 | 209 | @param errorBlock 发送消息失败的回调,返回错误码,消息ID,目标ID |
| 209 | 210 | */ |
| 210 | -- (void)sendMessage:(NSString *)message | |
| 211 | +- (void)sendMessage:(id)message | |
| 211 | 212 | type:(CNLiveConversationType)type |
| 212 | 213 | targetId:(NSString *)targetId |
| 213 | - success:(void (^)(CNLiveChatMessage *message))successBlock | |
| 214 | + success:(void (^)(id message))successBlock | |
| 214 | 215 | error:(void (^)(CNLiveChatErrorCode errors, NSString *messageId, NSString *targetId))errorBlock; |
| 215 | 216 | |
| 216 | 217 | |
| 217 | 218 | /** |
| 219 | + 发送图片消息 | |
| 220 | + | |
| 221 | + @param type 会话类型(私聊 / 聊天室) | |
| 222 | + @param targetId 会话目标ID(私聊:用户ID / 聊天室:聊天室ID) | |
| 223 | + @param content 消息内容(图片类型 CNliveChatImageMessage) | |
| 224 | + @param progressBlock 消息发送进度更新的回调 | |
| 225 | + [progress:当前的发送进度, 0 <= progress <= 100, messageId:消息的ID] | |
| 226 | + @param successBlock 消息发送成功的回调 | |
| 227 | + @param errorBlock 消息发送失败的回调 | |
| 228 | + */ | |
| 229 | +- (void)sendMediaMessage:(CNLiveConversationType)type | |
| 230 | + targetId:(NSString *)targetId | |
| 231 | + content:(CNliveChatImageMessage *)content | |
| 232 | + progress:(void (^)(int progress, NSString * messageId))progressBlock | |
| 233 | + success:(void (^)(CNliveChatImageMessage * message))successBlock | |
| 234 | + error:(void (^)(CNLiveChatErrorCode errorCode, NSString * messageId))errorBlock; | |
| 235 | + | |
| 236 | + | |
| 237 | +/** | |
| 218 | 238 | 获取当前SDK的连接状态 |
| 219 | 239 | |
| 220 | 240 | @return 当前SDK的连接状态 |
| ... | ... | @@ -223,13 +243,14 @@ |
| 223 | 243 | |
| 224 | 244 | |
| 225 | 245 | /** |
| 226 | - 获取某个会话中指定数量的最新消息 | |
| 246 | + 获取某个会话中指定数量的最新消息(私聊有效) | |
| 227 | 247 | |
| 228 | - @param conversationType 会话类型(私聊 / 聊天室) | |
| 229 | - @param targetId 会话目标ID(私聊:用户ID / 聊天室:聊天室ID) | |
| 248 | + @param conversationType 会话类型(私聊) | |
| 249 | + @param targetId 会话目标ID(私聊:用户ID) | |
| 230 | 250 | @param count 所要获取的消息数量 |
| 231 | 251 | |
| 232 | - @return 消息数组(CNLiveChatMessage类型) | |
| 252 | + @return 消息数组 | |
| 253 | + (包括 CNLiveChatMessage文本类型 / CNliveChatImageMessage图片类型 / CNLiveChatVoiceMessage语音类型) | |
| 233 | 254 | @discussion |
| 234 | 255 | 此方法会获取该会话中指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。 |
| 235 | 256 | 如果会话中的消息数量小于参数count的值,会将该会话中的所有消息返回。 | ... | ... |
发布版SDK/CNLiveChatManager.framework/Headers/CNLiveChatVoiceMessage.h
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveChatVoiceMessage.h | |
| 3 | +// CNLiveChatManagerSDKDemo | |
| 4 | +// | |
| 5 | +// Created by cnliveJunBo on 17/7/12. | |
| 6 | +// Copyright © 2017年 cnlive. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import <Foundation/Foundation.h> | |
| 10 | +#import "CNLiveChatStatusDefine.h" | |
| 11 | +#import "CNLiveChatUserInfo.h" | |
| 12 | + | |
| 13 | +@interface CNLiveChatVoiceMessage : NSObject | |
| 14 | + | |
| 15 | +/*! | |
| 16 | + wav格式的音频数据 | |
| 17 | + */ | |
| 18 | +@property(nonatomic, strong) NSData *wavAudioData; | |
| 19 | + | |
| 20 | +/*! | |
| 21 | + 语音消息的时长 | |
| 22 | + */ | |
| 23 | +@property(nonatomic, assign) long duration; | |
| 24 | + | |
| 25 | +/*! | |
| 26 | + 语音消息的附加信息 | |
| 27 | + */ | |
| 28 | +@property(nonatomic, strong) NSString *extra; | |
| 29 | + | |
| 30 | +// * 基础属性 * | |
| 31 | +/** | |
| 32 | + 会话类型(私聊 / 聊天室) | |
| 33 | + */ | |
| 34 | +@property (nonatomic, assign) CNLiveConversationType conversationType; | |
| 35 | + | |
| 36 | +/** | |
| 37 | + 目标ID(消息来自聊天室的ID / 接收者ID) | |
| 38 | + */ | |
| 39 | +@property (nonatomic, copy) NSString *targetId; | |
| 40 | + | |
| 41 | +/** | |
| 42 | + 消息ID(本地存储的消息的唯一值(数据库索引唯一值)) | |
| 43 | + */ | |
| 44 | +@property (nonatomic, copy) NSString *messageId; | |
| 45 | + | |
| 46 | +/** | |
| 47 | + 发送者的用户信息(userId, name, portraitUri) | |
| 48 | + */ | |
| 49 | +@property (nonatomic, strong) CNLiveChatUserInfo *userInfo; | |
| 50 | + | |
| 51 | +/*! | |
| 52 | + 初始化语音消息 | |
| 53 | + | |
| 54 | + @param audioData wav格式的音频数据 | |
| 55 | + @param duration 语音消息的时长(单位:秒) | |
| 56 | + @return 语音消息对象 | |
| 57 | + | |
| 58 | + @discussion | |
| 59 | + 如果您不是使用IMKit中的录音功能,则在初始化语音消息的时候,需要确保以下几点。 | |
| 60 | + 1. audioData必须是单声道的wav格式音频数据; | |
| 61 | + 2. audioData的采样率必须是8000Hz,采样位数(精度)必须为16位。 | |
| 62 | + | |
| 63 | + 您可以参考的录音参数: | |
| 64 | + NSDictionary *settings = @{AVFormatIDKey: @(kAudioFormatLinearPCM), | |
| 65 | + AVSampleRateKey: @8000.00f, | |
| 66 | + AVNumberOfChannelsKey: @1, | |
| 67 | + AVLinearPCMBitDepthKey: @16, | |
| 68 | + AVLinearPCMIsNonInterleaved: @NO, | |
| 69 | + AVLinearPCMIsFloatKey: @NO, | |
| 70 | + AVLinearPC'MIsBigEndianKey: @NO}; | |
| 71 | + */ | |
| 72 | ++ (instancetype)messageWithAudio:(NSData *)audioData duration:(long)duration; | |
| 73 | + | |
| 74 | +@end | ... | ... |
发布版SDK/CNLiveChatManager.framework/Headers/CNliveChatImageMessage.h
0 → 100644
| 1 | +// | |
| 2 | +// CNliveChatImageMessage.h | |
| 3 | +// CNLiveChatManager | |
| 4 | +// | |
| 5 | +// Created by cnliveJunBo on 17/7/11. | |
| 6 | +// Copyright © 2017年 cnlive. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import <Foundation/Foundation.h> | |
| 10 | +#import <UIKit/UIKit.h> | |
| 11 | +#import "CNLiveChatStatusDefine.h" | |
| 12 | +#import "CNLiveChatUserInfo.h" | |
| 13 | + | |
| 14 | +/*! | |
| 15 | + 图片消息类 | |
| 16 | + | |
| 17 | + @discussion 图片消息类 | |
| 18 | + */ | |
| 19 | +@interface CNliveChatImageMessage : NSObject | |
| 20 | + | |
| 21 | +/*! | |
| 22 | + 图片消息的URL地址 | |
| 23 | + | |
| 24 | + @discussion 发送方此字段为图片的本地路径,接收方此字段为网络URL地址。 | |
| 25 | + */ | |
| 26 | +@property(nonatomic, strong) NSString *imageUrl; | |
| 27 | + | |
| 28 | +/*! | |
| 29 | + 图片消息的缩略图 | |
| 30 | + */ | |
| 31 | +@property(nonatomic, strong) UIImage *thumbnailImage; | |
| 32 | + | |
| 33 | +/*! | |
| 34 | + 是否发送原图 | |
| 35 | + | |
| 36 | + @discussion 在发送图片的时候,是否发送原图,默认值为NO。 | |
| 37 | + */ | |
| 38 | +@property(nonatomic, getter=isFull) BOOL full; | |
| 39 | + | |
| 40 | +/*! | |
| 41 | + 图片消息的附加信息 | |
| 42 | + */ | |
| 43 | +@property(nonatomic, strong) NSString *extra; | |
| 44 | + | |
| 45 | +/*! | |
| 46 | + 图片消息的原始图片信息 | |
| 47 | + */ | |
| 48 | +@property(nonatomic, strong) UIImage *originalImage; | |
| 49 | + | |
| 50 | +// * 基础属性 * | |
| 51 | +/** | |
| 52 | + 会话类型(私聊 / 聊天室) | |
| 53 | + */ | |
| 54 | +@property (nonatomic, assign) CNLiveConversationType conversationType; | |
| 55 | + | |
| 56 | +/** | |
| 57 | + 目标ID(消息来自聊天室的ID / 接收者ID) | |
| 58 | + */ | |
| 59 | +@property (nonatomic, copy) NSString *targetId; | |
| 60 | + | |
| 61 | +/** | |
| 62 | + 消息ID(本地存储的消息的唯一值(数据库索引唯一值)) | |
| 63 | + */ | |
| 64 | +@property (nonatomic, copy) NSString *messageId; | |
| 65 | + | |
| 66 | +/** | |
| 67 | + 发送者的用户信息(userId, name, portraitUri) | |
| 68 | + */ | |
| 69 | +@property (nonatomic, strong) CNLiveChatUserInfo *userInfo; | |
| 70 | + | |
| 71 | +/*! | |
| 72 | + 初始化图片消息 | |
| 73 | + | |
| 74 | + @param image 原始图片 | |
| 75 | + @return 图片消息对象 | |
| 76 | + */ | |
| 77 | +// 发: originalImage thumbnailImage 有值 imageUrl 无值 | |
| 78 | +// 收: thumbnailImage imageUrl 有值 originalImage 无值 | |
| 79 | ++ (instancetype)messageWithImage:(UIImage *)image; | |
| 80 | + | |
| 81 | +/*! | |
| 82 | + 初始化图片消息 | |
| 83 | + | |
| 84 | + @param imageURI 图片的本地路径 | |
| 85 | + @return 图片消息对象 | |
| 86 | + */ | |
| 87 | +// 发(本地路径): originalImage thumbnailImage imageUrl 有值 | |
| 88 | +// 收: originalImage 无值 thumbnailImage imageUrl 有值 | |
| 89 | ++ (instancetype)messageWithImageURI:(NSString *)imageURI; | |
| 90 | + | |
| 91 | +@end | ... | ... |
发布版SDK/CNLiveMsgTools.framework/CNLiveMsgTools
No preview for this file type
发布版SDK/CNLiveMsgTools.framework/Headers/CNLiveMsgManager.h
| ... | ... | @@ -12,6 +12,7 @@ |
| 12 | 12 | |
| 13 | 13 | @property (nonatomic, readonly, assign) BOOL isTestEnvironment; |
| 14 | 14 | |
| 15 | + | |
| 15 | 16 | + (NSString *)getCNLiveMsgVersion; |
| 16 | 17 | |
| 17 | 18 | |
| ... | ... | @@ -25,6 +26,12 @@ |
| 25 | 26 | - (NSDictionary *)getToolsInfo; |
| 26 | 27 | |
| 27 | 28 | |
| 29 | +- (NSDictionary *)messageWithImage:(id)image; | |
| 30 | + | |
| 31 | + | |
| 32 | +- (NSDictionary *)messageWithVoice:(NSData *)voiceData duration:(long)duration; | |
| 33 | + | |
| 34 | + | |
| 28 | 35 | - (void)initCNLiveMsgToolsWithAppKey:(NSString *)appKey appId:(NSString *)appId; |
| 29 | 36 | |
| 30 | 37 | |
| ... | ... | @@ -72,13 +79,23 @@ |
| 72 | 79 | error:(void (^)(NSInteger errors, NSString *targetId))errorBlock; |
| 73 | 80 | |
| 74 | 81 | |
| 75 | -- (void)sendCarrier:(NSString *)carrier | |
| 82 | +- (void)sendCarrier:(NSDictionary *)carrier | |
| 76 | 83 | type:(NSInteger)type |
| 77 | 84 | targetId:(NSString *)targetId |
| 78 | 85 | success:(void (^)(NSString *carrier, NSString *messageId, NSString *targetId, NSInteger type, NSString *infoId, NSString *infoName, NSString *infoUrl, long long goTime, long long comeTime))successBlock |
| 79 | 86 | error:(void (^)(NSInteger errors, NSString *messageId, NSString *targetId))errorBlock; |
| 80 | 87 | |
| 81 | 88 | |
| 89 | +- (void)sendMedia:(NSDictionary *)media type:(NSInteger)type | |
| 90 | + targetId:(NSString *)targetId | |
| 91 | + pushContent:(NSString *)pushContent | |
| 92 | + pushData:(NSString *)pushData | |
| 93 | + progress:(void (^)(int progress, NSString *messageId))progressBlock | |
| 94 | + success:(void (^)(NSString *messageId, NSString *targetId, NSInteger type, NSString *infoId, NSString *infoName, NSString *infoUrl))successBlock | |
| 95 | + error:(void (^)(NSInteger errorCode, NSString *messageId))errorBlock | |
| 96 | + cancel:(void (^)(NSString * messageId))cancelBlock; | |
| 97 | + | |
| 98 | + | |
| 82 | 99 | - (NSInteger)getOnLineStatus; |
| 83 | 100 | |
| 84 | 101 | ... | ... |