push-уведомление в ionic3 с помощью плагина fcm - PullRequest
0 голосов
/ 26 октября 2018

Я новичок в ionic 3, и я внедрил push-уведомление fcm в приложении, которое я создаю, и оно работает нормально, когда приложение работает (как на переднем, так и на заднем плане), но когда я пытаюсь отправить push-уведомление на пользователь, когда приложение не запущено, я не получаю никаких сообщений, поэтому кто-то может помочь мне решить эту проблему.

Спасибо заранее.

страница

 import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, ActionSheetController,Platform,AlertController } from 'ionic-angular';
import { AddeventPage } from '../addevent/addevent';
import { EventItem } from '../../models/event-item/event-item.interface';
import {AngularFireDatabase, AngularFireList} from 'angularfire2/database';
import {AuthService} from '../../services/auth'
import { Observable } from 'rxjs';
import { SigninPage } from '../signin/signin';
import {EventdetailsPage} from '../eventdetails/eventdetails';
import { FCM } from '@ionic-native/fcm';
import  firebase  from "firebase";
import { Push, PushObject, PushOptions } from '@ionic-native/push';



/**
 * Generated class for the EventlistPage page.
 *
 * See https://ionicframework.com/docs/components/#navigation for more info on
 * Ionic pages and navigation.
 */

@IonicPage()
@Component({
  selector: 'page-eventlist',
  templateUrl: 'eventlist.html',
})
export class EventlistPage {
  username: String;

  eventListRef$ : Observable<any[]>

  constructor(
    private authService:AuthService,
    private database: AngularFireDatabase,
    public navCtrl: NavController,
    private actionSheetCtrl: ActionSheetController,
     public navParams: NavParams,
     public platform: Platform,
     private fcm: FCM,
     private push: Push,
     public alertCtrl: AlertController


     ) {

    this.eventListRef$ = this.database.list('eventlist').valueChanges();
    this.initFCM();







  }

  onSelectEvent(){
    this.actionSheetCtrl.create()
  }
  goToAddEvent() {
    this.navCtrl.push(AddeventPage);
  }
  cardtapped(event){
    this.navCtrl.push(EventdetailsPage, {
      date:event.date,
      time:event.time,


  });
  }

  initFCM() {
    this.fcm.subscribeToTopic('marketing');

    // if(typeof(this.fcm) !== "undefined"){

    this.fcm.getToken().then(token=>{

    alert(token);
    console.log(token);
    firebase.database().ref('/volunteers/'+this.authService.getActiveUser().uid).update({
      fcmtoken:token
    })

    });

    //this.fcm.subscribeToTopic('/topics/all');

    this.fcm.onNotification().subscribe(data=>{
    if(data.wasTapped){
    alert("Received in background")
    var Str1 = JSON.stringify(data.value)
    alert(Str1)
    } else {

     var Str2 = JSON.stringify(data.value)
     alert("Received in foreground"+Str2);
    };
    });

    this.fcm.onTokenRefresh().subscribe(token=>{

    alert(token);

    });
    this.fcm.unsubscribeFromTopic('marketing');
  }
}
...