как отправить изображение с помощью JSQMessagesViewController?

Я использую JSQMessagesViewController и Firebase с входом в Twitter. введите здесь описание изображения

Я могу успешно отправить текстовое сообщение с помощью «didPressSendButton».

теперь я пытаюсь отправить изображения. У меня есть одно тестовое изображение. теперь, когда я пытаюсь отправить изображение с помощью «didPressAccessoryButton». когда эта функция выполняет преобразование изображения в base64 и сохранение в базе данных firebase. но проблема в том, что когда я нажал didPressAccessoryButton, синий пузырь не показывает никакого изображения.


person Komal Kamble    schedule 30.04.2016    source источник
comment
Этот вопрос очень расплывчатый. Посмотрите, как создать отличный вопрос, здесь Как создать минимальный, полный и проверяемый пример   -  person Jay    schedule 30.04.2016


Ответы (1)


Я так понимаю, отправив текст, который вы используете:

    override func didPressSendButton(button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: NSDate!)
{
self.sendMessage(text, video: nil, picture: nil)
    self.finishSendingMessage()
}

и что у вас есть функция в функции didFinishPickingMediaWithInfo для сохранения изображения в base64 в Firebase, вы можете использовать следующий код, чтобы изображение отображалось в пузыре, в котором говорилось, что я объединяю все в функции 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, так как это не рекомендуется)

person Peter de Vries    schedule 30.04.2016
comment
к сожалению не могу, наоборот да, с Swiftly методом проб и ошибок. - person Peter de Vries; 15.07.2016
comment
Каков фактический метод делегата в JSQMessageVIewController, где должны обрабатываться сообщения мультимедийного изображения? - person bibscy; 05.08.2018