消息收发
客服会话过程由一条一条的消息组成,SDK中消息模型由 PDMessage 类表示。 消息包含消息体,消息体由 PDMessageContent 类及其子类表示,不同类别的消息包含相应的消息体对象。
- 文字消息 PDMessageContentText
- 图片消息 PDMessageContentImage
- 音频消息 PDMessageContentAutio
- 图文消息 PDMessageContentRichText
- 菜单消息 PDMessageContentMenu
发送消息
常用消息类型的发送可以直接调用 PDBotLibClient 中的封装方法
文字消息
[[PDBotKitClient sharedClient] askQuestion:@"Hello world"];
图片消息
// 生成临时文件
NSString* fileName = [NSString stringWithFormat:@"photo%0.0lf.jpg", [[NSDate date] timeIntervalSince1970]*1000];
NSString* filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:fileName];
NSData* imageData = UIImageJPEGRepresentation(image, 0.8f);
[imageData writeToFile:filePath atomically:YES];
[[PDBotKitClient sharedClient] askQuestionByImage:[NSURL fileURLWithPath:filePath]];
音频消息
// 生成临时文件
NSString* fileName = [NSString stringWithFormat:@"record%0.0lf.mp3", [[NSDate date] timeIntervalSince1970]*1000];
NSString* filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:fileName];
NSURL* fileUrl = [NSURL fileURLWithPath:filePath];
[[NSFileManager defaultManager] moveItemAtURL:recordUrl toURL:fileUrl error:nil];
[[PDBotKitClient sharedClient] askQuestionByAudio:fileUrl];
接收消息
接收消息通过实现 PDBotLibClientDelegate 中的代理方法实现。 通过 contentType 属性可以判断消息类型,然后使用相应的消息体类进行解析。
- (void)onAppendMessage:(PDMessage*)message
{
switch (message.contentType)
{
case PDMessageContentTypeText:
PDMessageContentText* contentText = (PDMessageContentText*)message.content;
......
break;
case PDMessageContentTypeImage:
PDMessageContentImage* contentImage = (PDMessageContentImage*)message.content;
......
break;
case PDMessageContentTypeAudio:
PDMessageContentAudio* contentAudio = (PDMessageContentAudio*)message.content;
......
break;
case PDMessageContentTypeMenu:
PDMessageContentMenu* contentMenu = (PDMessageContentMenu*)message.content;
......
break;
}
}