Я разрабатываю надстройку для офиса с использованием Office-js и использую угловую
Я пытаюсь загрузить файл, который возвращается из запроса на обслуживание REST в виде большого двоичного объекта.
ЕслиЯ открываю офис Аддина из Сети.Оно работает.Однако приложение Outlook для настольных компьютеров не загружает ссылку.
Я пробовал несколько способов.
Ниже приведен пример кода:
processAttachmentDownload(this.lsrfId, this.storageId)
.subscribe(data => {
console.log("data =", data);
let blob = new Blob([data], { type: 'application/octet-stream' });
console.log("blob");
this.fileUrl = window.URL.createObjectURL(blob);
console.log("fileUrl = ", this.fileUrl);
this.sanitizedFileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.fileUrl);
console.log("sanitized url ", this.sanitizer.bypassSecurityTrustResourceUrl(this.fileUrl));
if (window.navigator.msSaveOrOpenBlob) { // IE only
this.error = "navigator supported";
window.navigator.msSaveOrOpenBlob(blob, this.finalName);
} else if(document.createElement) {
this.error = "document supported";
const link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
this.error = link.href;
link.download = this.finalName;
link.click();
}else{
this.error = "saveAs supported";
saveAs(blob, this.finalName);
}
// console.log("url = ",url);
// let pwa = window.open(url);
// if (!pwa || pwa.closed || typeof pwa.closed == 'undefined') {
// alert( 'Please disable your Pop-up blocker and try again.');
// }
});
HTML-шаблон содержитследующий код:
<span class="ms-ListItem-primaryText"></span>
<span class="ms-ListItem-secondaryText app-item-secondary-text">
<i class="ms-Icon ms-Icon--Attach"></i>
{{ finalName }}
</span>
<a [href]="fileUrl" download="{{finalName}}">click to download</a><br/>
<a [href]="sanitizedFileUrl" download="{{finalName}}">click to s download</a>
<p>{{error}}</p>