我已经下载了quickblox示例聊天应用程序,发送短信工作正常。但是如何发送图片,视频等附件?
根据Quickblox的文档。 有一个名为 QBChatAttachment 的类具有类型, url 和 id 等属性,但如何附加图片,视频等文件或者?
答案 0 :(得分:4)
请在此链接中正确阅读SimpleSample-chat users-ios,他们已提及有关如何发送附件以及如何接收和下载附件等的所有详细信息。
要在quickbox中发送和接收附件,请点击此链接 Send and Receive Attachment
详情说明:
发送和接收带附件的邮件发送附件
可以在消息中添加附件:例如,图像,音频 文件或视频文件。我们这里没有任何限制 - 你可以 附上任何类型的文件。
要发送带附件的邮件,您应该使用与您相同的方式 发送带有文本的常规消息,但添加一个附件对象。 附件可以是:
1)文件内容模块Example
2)自定义对象模块Example
中的文件发送带附件的邮件
您应该将文件上传到内容模块,自定义对象模块 使用上面的示例或使用URL到Internet中的任何文件。那么你 应该包含一个ID到文件到消息。
例如,我们使用Content模块存储附件。下一个片段 显示
如何将文件上传到Content模块并将其作为附件发送:
// Upload a file to the Content module NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed:@"arrow.png"]); [QBRequest TUploadFile:imageData fileName:@"arrow.png" contentType:@"image/png" isPublic:NO successBlock:^(QBResponse *response, QBCBlob *uploadedBlob) { NSUInteger uploadedFileID = uploadedBlob.ID; // Create chat message with attach // QBChatMessage *message = [QBChatMessage message]; ... QBChatAttachment *attachment = QBChatAttachment.new; attachment.type = @"image"; attachment.ID = [NSString stringWithFormat:@"%d", uploadedFileID]; //use 'ID' property to store an ID of a file in Content or CustomObjects modules [message setAttachments:@[attachment]]; } statusBlock:^(QBRequest *request, QBRequestStatus *status) { // handle progress } errorBlock:^(QBResponse *response) { NSLog(@"error: %@", response.error); }];
接收附件
例如,我们使用内容模块来存储附件。下一个片段 允许接收带附件的邮件并下载:
#pragma mark QBChatDelegate - (void)chatDidReceiveMessage:(QBChatMessage *)message{ for(QBChatAttachment *attachment in message.attachments){ // download file by ID [QBRequest TDownloadFileWithBlobID:[attachment.ID integerValue] successBlock:^(QBResponse *response, NSData *fileData) { UIImage *image = [UIImage imageWithData:fileData]; } statusBlock:^(QBRequest *request, QBRequestStatus *status) { // handle progress } errorBlock:^(QBResponse *response) { NSLog(@"error: %@", response.error); }]; } }
获取附件链接并使用它来显示图像:
- (void)chatDidReceiveMessage:(QBChatMessage *)message{ for(QBChatAttachment *attachment in message.attachments){ // or if you have only file ID NSString *privateUrl = [QBCBlob privateUrlForID:[attachment.ID integerValue]]; } }
我希望它会对你有所帮助。