我有一个addin
,它调用REST API并以BLOB格式下载文件。
我正在使用FileSaver
库将文件保存在本地PC中。
尽管一切正常,在chrome,Edge和IE11浏览器中的Outlook 365中都可以正常工作。 Outlook Desktop Client没有提供保存文件的选项。实际上,在调试时,我尝试查找一些错误,但没有发现任何错误。所有代码都可以在Outlook Desktop Client上正常工作。
我想知道任务窗格是否使用IE浏览器,它应该支持filesave.saveAs
方法。
我也尝试使用链接
// const link = window.document.createElement('a');
// this.error = `linke = ${link}`
// link.href = window.URL.createObjectURL(blob);
// this.error = `href = ${link.href}`;
// this.error = link.href;
// link.download = this.finalName;
// link.click();
它在Outlook Desktop Client上也不起作用,并且在浏览器版本中可以正常工作。
我现在正在使用的代码如下:
/**
Angular HttpClient is used to call a rest api which returns a blob.
which is passed to saveAs function to save the file.
**/
this.dsService.processAttachmentDownload(attachmentId, storageId)
.subscribe(data => {
const blob = new Blob([data], { type: 'application/octet-stream' });
saveAs(blob, this.finalName);
});
答案 0 :(得分:0)
我认为问题在于您正在以blob格式下载文件。 Windows 32位或Mac上的加载项不支持此功能。但是,this post已链接到使用FileSaver的项目,并且应该能够提供帮助。另外,您能够使用office-js标记此问题吗?这将帮助其他有识之士找到这个问题并提供帮助。