Загрузите файл, щелкнув ссылку на панели задач в надстройке Microsoft Office. - PullRequest
0 голосов
/ 27 сентября 2019

Я разрабатываю надстройку для офиса с использованием 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>
...