Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 在react native中将媒体(图像)上载到twilio可编程聊天时出现问题_React Native_Twilio_Twilio Programmable Chat - Fatal编程技术网

React native 在react native中将媒体(图像)上载到twilio可编程聊天时出现问题

React native 在react native中将媒体(图像)上载到twilio可编程聊天时出现问题,react-native,twilio,twilio-programmable-chat,React Native,Twilio,Twilio Programmable Chat,我正在使用react native实现可编程聊天。不幸的是,我无法将带有图像的消息正确上传到twilio。概述了创建媒体消息的3种方法。发送:1)FormData(在react native中似乎不适用于我?),2)字符串,或3)缓冲区 在这一点上,我尝试了许多变化,但我还是被难住了。我已经带着这两个东西到处跑了,但还没有破解 我尝试的每件事都会导致失败或上传字符串。上传字符串后,我可以通过获取创建的媒体消息、获取媒体附件的临时url、手动获取存储在该url的字符串,然后使用获取的字符串为Ima

我正在使用react native实现可编程聊天。不幸的是,我无法将带有图像的消息正确上传到twilio。概述了创建媒体消息的3种方法。发送:1)FormData(在react native中似乎不适用于我?),2)字符串,或3)缓冲区

在这一点上,我尝试了许多变化,但我还是被难住了。我已经带着这两个东西到处跑了,但还没有破解

我尝试的每件事都会导致失败或上传字符串。上传字符串后,我可以通过获取创建的媒体消息、获取媒体附件的临时url、手动获取存储在该url的字符串,然后使用获取的字符串为Image元素创建base64数据uri来完成一次往返。但我99%肯定这是“做错了”。如果我做得对,Twilio应该为我存储一个实际的图像,并给我一个临时url,我可以直接提供给我的图像元素,对吗

总而言之:我可以将base64编码的字符串存储在twilio中,但就我的一生而言,我不知道如何将图像二进制存储在那里,以便在点击它所在的url时可以直接访问


我觉得我必须错过一些简单的东西,但我现在没有主意了。有没有办法在react native中设置缓冲区?我应该尝试使用FormData吗?

我终于找到了答案。这只是一个不知道如何将文件放入react native中的缓冲区的问题。我终于能够通过和的组合来实现这一点。代码如下所示:

import RNFS from 'react-native-fs'

myMethod(twilioChannelObject, filePathString) {
  RNFS.readFile(filePath, 'base64').then((data) => {
    var Buffer = require('buffer/').Buffer
    data = Buffer.from(data, 'base64')

    twilioChannelObject.sendMessage({
      contentType: 'image/png',
      media: data
    }).then(id => {})
  })
}

这可能不是解决问题的最佳实践方法,但它对我来说很有效,所以现在继续吧。

谢谢,它在twilio对话中也很有效!