【发布时间】:2018-12-13 18:04:51
【问题描述】:
我正在尝试使用 Inboxsdk 通过 composeView 对象附加附件。我使用以下代码从远程 url 获取 blob 对象。
// FUNCTION TO OPEN A NEW COMPOSE BOX ONCE THE ATTACHMENT BLOB IS OBTAINED FROM REMOTE URL.
function openComposeBox(sdk, blob){
handler = sdk.Compose.registerComposeViewHandler(function(composeView){
if(blob != null){
composeView.attachFiles([blob]);
composeView.setSubject("Testing");
}
});
}
// FETCHING ATTACHMENT FILE FROM REMOTE URL
var file_btn_url = "https://api.hummingbill.com/system/invoices/invoice_files/000/033/393/original/abracadabra.txt";
var file_name = file_btn_url.split("/");
file_name = file_name[file_name.length-1];
file_type = /[^.]+$/.exec(file_name);
var blob = null;
var xhr = new XMLHttpRequest();
xhr.open("GET", file_btn_url);
xhr.responseType = "blob";
xhr.onload = function()
{
blob = xhr.response;
// blob.lastModifiedDate = new Date(); // Since it's not necessary to have it assigned, hence commented.
blob.name = file_name;
console.log(blob);
openComposeBox(sdk, blob);
}
xhr.send();
虽然我根据documentation 的要求具有正确的 blob 对象格式。
根据文档,我已经为 blob 设置了文件名,并将其以数组的形式传递给 attachFiles 函数。你能调查一下,让我知道我错过了什么吗?
【问题讨论】:
-
如果您在附加文件时遇到错误(使用正确的实现和配置),请确保您已安装 Flash。访问get.adobe.com/flashplayer 以检查更新并下载最新版本。还要尝试清除缓存和 cookie。您可以查看here。也可以查看这个相关的forum。
-
欣赏建议。通过将 blob 转换为文件,然后附加来尝试它。它奏效了。
-
嗨 anurag,您可以发布解决方案作为答案吗?谢谢!
-
@brasofilo 发布了解决方案作为答案。干杯。
标签: javascript google-inbox inboxsdk