Загрузка документа только иногда в Ionic в браузере - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь использовать следующий код для загрузки файла, возвращенного в виде байтового массива из API.Но в браузере файл загружается только иногда, но в противном случае происходит сбой без ошибок.Вот код:

this.service.getTerms(docId).subscribe(
  response => {
    var byteCharacters = atob(response);
    var byteNumbers = new Array(byteCharacters.length);
    for (var i = 0; i < byteCharacters.length; i++) {
        byteNumbers[i] = byteCharacters.charCodeAt(i);
    }
    var byteArray = new Uint8Array(byteNumbers);
    var blob = new Blob([byteArray], {type: 'application/pdf'});
    if(!this.platform.is('android') && !this.platform.is('ios')){
      let fileObjectURL = URL.createObjectURL(blob);
      let a = document.createElement("a");
      document.body.appendChild(a);
      a.href = fileObjectURL;
      a.download = docName+'.pdf';
      a.click();
      window.URL.revokeObjectURL(fileObjectURL);
    }
    let fileName = docName;
    let filePath = this.file.documentsDirectory;
    if(this.platform.is('android')){
      filePath = this.file.externalDataDirectory;
    }
    this.file.writeFile(filePath , fileName+'.pdf',blob,{replace:true})
    .then(success => {
      this.fileOpener.open(filePath+fileName+'.pdf', 'application/pdf')
      .then((success) => {
        this.loading.dismiss();
      })
      .catch(error => {
        this.loading.dismiss();

      });
    })
    .catch(error => {
      this.loading.dismiss();
    });
  },
  (error) => {
    this.util.displayAlert(this.translations.ERROR,error.json().ReturnMessage);
    this.loading.dismiss();
  }
)

Я использую Ionic Version 3.19.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...