实施下载通知文件ionic 3

时间:2018-09-25 13:21:06

标签: ionic3 download-manager

我遇到以下难题,我正在使用Ionic 3,并且有一个类可以从URL下载文件,该URL带给我REST服务。此下载文件没有问题,但是我不知道如何实现,或者我没有正确搜索添加下载通知,如以下链接所示: ionic 2 show file download progress in notification

在链接中有2个与如何添加库相对应的答案,但我不知道它们是否也与IOS兼容,因为我需要它们适用于android和IOS。 我目前正在使用file.transfer将文件保存在设备上。我在下面留下代码:

this.platform.ready().then(() => { 

  this.databaseService.getSesion(2).then(result => {
    this.rutUsuario = result.valor;
    })
  .catch( error => {
  });

  if (this.platform.is('ios')) {
    this.storageDirectory = cordova.file.documentsDirectory;
  }
  else if(this.platform.is('android')) {
    this.storageDirectory = cordova.file.externalRootDirectory + '/Download/';

    /**
   * Permisos de Android
   */

    this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.READ_EXTERNAL_STORAGE).then(
      result => {
        if (result.hasPermission) {
          // code
        } else {
          this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.READ_EXTERNAL_STORAGE).then(result => {
            if (result.hasPermission) {
              // code
            }
          });
        }
      },
      err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.READ_EXTERNAL_STORAGE)
    );
  }
  else {
    // exit otherwise, but you could add further types here e.g. Windows
    return false;
  }
});
  }
if(respuesta.status == "200") {
        let autorizacion = this.resultado.headers;
        let nombreArchivo = datos.split("tmp/");
        let urlFinal = datos;

        fileTransfer.download(urlFinal , this.storageDirectory  + nombreArchivo[1]).then((entry) => {  
          this.alerta("Se ha descargado el archivo de manera satisfactoria.");
          this.loading.dismissAll();
          this.databaseService.GuardaSQLlite(1, autorizacion.authorization);
          this.navCtrl.setRoot(HomePage);
        }, (error) => {
          this.alerta("Hubo un error al momento de descargar el archivo. Si el problema persiste favor contactarse al 816 35 12 o 816 35 09.");
          this.loading.dismissAll();
        });

如果某人的网站上提供了有关如何正确实施的示例,我将不胜感激,因为此时我被某种程度的封锁,无法找到解决方案。

非常感谢事先提供的帮助

0 个答案:

没有答案