react-native - 在 react-native 中将媒体(图像)上传到 twilio 可编程聊天时遇到问题

标签 react-native twilio twilio-programmable-chat

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

此时我已经尝试了很多变体,但都被难住了。我到处都是react-native-fsreact-native-fetch-blob并且还没有破解它。

我尝试的所有操作都以失败告终或上传了一个字符串。上传字符串后,我可以通过获取创建的媒体消息、获取媒体附件的临时 url、手动获取存储在该 url 的字符串,然后为图像元素制作 base64 数据 uri 来完成往返获取的字符串。但我 99% 确定那是“做错了”。如果我做对了,Twilio 应该会为我存储一个实际图像并给我一个临时 url,我可以直接将其提供给我的图像元素,对吗?

总结一下:我可以得到一个 base64 编码的字符串存储在 twilio 中,但是对于我来说,我无法弄清楚如何将图像二进制文件放在那里以便在点击 url 时可以直接访问它在。

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

最佳答案

我终于明白了。这只是一个问题,不知道如何将文件放入 React Native 的缓冲区中。我终于能够通过 react-native-fs 的组合来完成这项工作和 buffer .代码看起来像这样:

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 => {})
  })
}

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

关于react-native - 在 react-native 中将媒体(图像)上传到 twilio 可编程聊天时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48602752/

相关文章:

javascript - 如何在 React Native 中将样式对象与内联样式结合起来?

javascript - 无法从 react 导航获得基本示例以正常工作

javascript - 函数在不应该异步运行时异步运行

ruby - 在没有 Rails 的情况下使用 Twilio/XML

twilio - 使用 TwilioClient 从运行时函数执行 Studio Flow

从 twilio 函数获取 token 后,Twilio 聊天客户端对于 iOS 为零

twilio - twilio对话sdk同步对话错误

react-native - 根据一个参数修改header

twilio-programmable-chat - Twilio Chat - 如何在 channel 创建期间将用户加入 channel ?

ios - 如何在 Twilio 的可编程聊天中将 ${USER FRIENDLY NAME} 显示为标题,将 ${MESSAGE} 显示为推送通知负载的正文?