我正在使用JSQMessagesViewController和Firebase与Twitter登录。
我可以使用“didPressSendButton”成功发送短信。
现在我要发送图像了。我有一个测试图像。 现在,当我想用“didPressAccessoryButton”发送图像时。当此函数执行图像时,在base64中转换并保存在firebase数据库中。但问题是,当我按下didPressAccessoryButton时,蓝色气泡不会显示任何图像。
答案 0 :(得分:2)
我通过发送您使用的文字来理解:
override func didPressSendButton(button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: NSDate!)
{
self.sendMessage(text, video: nil, picture: nil)
self.finishSendingMessage()
}
并且你在didFinishPickingMediaWithInfo函数中有一个函数将图像保存在Firebase的base64中,你可以使用下面的代码让图片显示在一个泡泡中,表示我在sendMessage函数中组合了所有函数,但是以下内容应该有所帮助:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
{
let picture = info[UIImagePickerControllerEditedImage] as? UIImage
if (info[UIImagePickerControllerEditedImage] as? UIImage) != nil
{
let mediaItem = JSQPhotoMediaItem(image: nil)
mediaItem.appliesMediaViewMaskAsOutgoing = true
mediaItem.image = UIImage(data: UIImageJPEGRepresentation(picture, 0.5)!)
let sendMessage = JSQMessage(senderId: senderId, displayName: self.senderFullName, media: mediaItem)
self.messages.append(sendMessage)
self.finishSendingMessage()
}
picker.dismissViewControllerAnimated(true, completion: nil)
}
祝你好运(你也可以考虑不在Firebase中存储大图像,因为不建议这样做)