viernes, 29 de mayo de 2020

Push Notification - ONESIGNAL

1. instalar:

ionic cordova plugin add onesignal-cordova-pluginnpm install @ionic-native/onesignal
2. Importar el servicio en los privders MODULO PRINCIPAL (app.module.ts)
import { OneSignal } from '@ionic-native/onesignal/ngx';
    
providers: [
StatusBar,
SplashScreen,
OneSignal,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],


3. KEY EN VARIABLES DE ENTORNO    ONESIGNAL APP IDEJM-f799-4ced-b221-84c8297adca3    FIREBASE_SENDER_ID: ej3523024246

4. Crear servicio PushService
import { OneSignal, OSNotification } from '@ionic-native/onesignal/ngx';
import { Injectable } from '@angular/core';

@Injectable({
providedIn: 'root'
})
export class PushService {

constructor(private oneSignal: OneSignal) { }

mensajes:any[] = [
{
title: 'Titulo de la push',
body: 'Este es el body de la push',
date: new Date()
}
];

configuracionInicial(){

this.oneSignal.startInit(ONESIGNAL_APP_ID, FIREBASE_SENDER_ID);

this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.Notification );

this.oneSignal.handleNotificationReceived().subscribe((noti) => {
// do something when notification is received
console.log('Notificación recibida', noti);
this.notificacionRecibida( noti );
});

this.oneSignal.handleNotificationOpened().subscribe((noti) => {
// do something when a notification is opened
console.log('Notificación abierta', noti)
});

this.oneSignal.endInit();

};

notificacionRecibida( noti: OSNotification ){

const payload = noti.payload;
const existePush = this.mensajes.find( mensaje=> mensaje.notificationID === payload.notificationID );

if( existePush ){
return;
}

this.mensajes.unshift( payload );

};

}


5. INYECTAR EN APP.COMPONENT.TS
private pushService: PushService

initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
this.pushService.configuracionInicial();
});
}




































No hay comentarios.:

Publicar un comentario