kolbasa/cordova-plugin-apkupdater

Implementación en ionic

Closed this issue · 3 comments

¿Cómo se implementa en ionic 4 o 5 ? algún ejemplo (ES-PE)

Ionic 4-5 soporta Cordova, por lo que también puedes utilizar este plugin.
Sin embargo, por el momento no puedo decirte exactamente cómo instalar plugins específicamente en Ionic 4-5. Deberías poder encontrar suficientes ejemplos en la documentación oficial de Ionic.

Este fin de semana echaré un vistazo a un proyecto de ejemplo de Ionic y lo añadiré a mi documentación.

Lo he probado ahora. Aquí hay un ejemplo completo. Hágame saber si no funciona.

import {Platform} from '@ionic/angular';
import {Component} from '@angular/core';
import {HttpClient} from '@angular/common/http';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})

export class HomePage {

  endpoint = 'https://raw.githubusercontent.com/kolbasa/cordova-plugin-apkupdater-demo/master/update';

  constructor(private httpClient: HttpClient, public platform: Platform) {
    platform.ready().then(this.downloadAndInstall.bind(this)).catch(console.error);
  }

  async downloadAndInstall() {
    const apkUpdater = (window as any).ApkUpdater;

    const response = await this.httpClient.get<any>(this.endpoint + '/manifest.json').toPromise();

    const remoteVersion = response.version;
    const installedVersion = (await apkUpdater.getInstalledVersion()).version.name;

    if (remoteVersion > installedVersion) {
      await apkUpdater.download(this.endpoint + '/update.zip', {password: 'aDzEsCceP3BPO5jy', onDownloadProgress: console.log});
      await apkUpdater.install();
    }
  }

}

Version 2.2.0 now has its own TypeScript API:

import ApkUpdater from 'cordova-plugin-apkupdater';

export class HomePage {

    // .
    // .
    // .

    async update() {
        await ApkUpdater.download(
            'https://your-update-server.com/update.apk',
            {
                onDownloadProgress: progress => console.log,
            }
        );
        await ApkUpdater.install();
    }

}