gpt4 book ai didi

ios - SendBird - iOS : Cannot receive camera photo, 但可以接收存储的图像

转载 作者:行者123 更新时间:2023-11-29 00:05:45 27 4
gpt4 key购买 nike

我正在使用 SendBird 向我的应用添加发送图片功能。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 我执行这段代码

NSData *imageFileData = UIImageJPEGRepresentation(info[UIImagePickerControllerOriginalImage], 0.5);
NSURL* imagePath = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
NSString* imageName = [imagePath lastPathComponent];

[self.currentChannel sendFileMessageWithBinaryData:imageFileData filename:imageName type:@"image/jpg" size:[imageFileData length] data:nil completionHandler:^(SBDFileMessage * _Nullable fileMessage, SBDError * _Nullable error) {}];

当 imagePicker 的 sourcetype 是:UIImagePickerControllerSourceTypePhotoLibrary 时,此代码运行良好。

如果我使用 imagePicker 发送图像,其 sourcetype 是:UIImagePickerControllerSourceTypeCamera 然后

- (void)channel:(SBDBaseChannel *)sender didReceiveMessage:(SBDBaseMessage *)message 永远不会被触发。

最佳答案

据我所知,UIImagePickerControllerSourceTypeCamera 中的 info 字典没有 UIImagePickerControllerReferenceURL 的对象。因此,imagePathimageName 必须为 nil

sendFileMessageWithBinaryData:filename:type:size:data:completionHandler: 需要 filename 不为 nil。因为您生成 jpeg 数据,所以只需使用 @"image.jpg" 作为 文件名,如下所示:

NSData *imageFileData = UIImageJPEGRepresentation(info[UIImagePickerControllerOriginalImage], 0.5);

[self.currentChannel sendFileMessageWithBinaryData:imageFileData filename:@"image.jpg" type:@"image/jpg" size:[imageFileData length] data:nil completionHandler:^(SBDFileMessage * _Nullable fileMessage, SBDError * _Nullable error) {
}];

关于ios - SendBird - iOS : Cannot receive camera photo, 但可以接收存储的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48095537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com