我正在使用 Circuit JS SDK 并希望发送带有附加图像的消息。我在文档中发现我应该将 item.attachments 设置为 File[] 对象。但是,如果我只有图像 URL(如https://abc.cde/fgh.png ) ,我该怎么做?
问问题
55 次
1 回答
1
为了能够在对话中发布图像,需要将图像上传到 Circuit,addTextItem
正如您已经发现的那样,这是在 API 内部完成的。是的,这个 API 需要一个对象数组File
。
您需要通过 XMLHttpRequest 将图像下载为 blob,然后构造一个 File 对象。
const xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.open('GET',<url of image> , true);
xhr.onreadystatechange = async () => {
if (xhr.readyState == xhr.DONE) {
const file = new File([xhr.response], 'image.jpg', { lastModified: Date.now() });
const item = await client.addTextItem(convId.value, {
attachments: [file]
});
}
};
xhr.send();
这是一个 jsbin https://output.jsbin.com/sumarub
于 2019-11-15T13:42:44.460 回答