Включение / выключение уведомлений о ионных настройках кнопкой - PullRequest
0 голосов
/ 08 июля 2019

Мне нужно знать, как я могу включить / выключить уведомления.Я пытаюсь это будет локальное хранилище, как если бы пользователь выключил переключатель, я установил значение кнопки false.И если пользователь переключается, установите значение true.Этот метод в порядке?Если да, тогда я пытаюсь использовать оператор IF, если значение кнопки переключателя равно true, тогда будет отображаться уведомление.

Но проблема в том, что когда значение кнопки выключено, также отображается уведомление

  constructor(private nativeStorage: NativeStorage, private push: Push, public platform: Platform, private fcm: FCM,  public statusBar: StatusBar, public splashScreen: SplashScreen) {


    this.initializeApp();

  }

  initializeApp() {
       this.platform.ready().then(() => {
       this.check();

      //Notifications
      if(this.isToggled == true){
      this.fcm.subscribeToTopic('all');
      this.fcm.getToken().then(token=>{
          console.log(token);
      })
      this.fcm.onNotification().subscribe(data=>{

        if(data.wasTapped){
                this.nav.setRoot(ArticledetailsPage, {x:data.newsid});

          console.log("Received in background");
        } else {
          console.log("Received in foreground");
        };
      })
      if(this.isToggled == true){
        this.fcm.subscribeToTopic('marketing');
      }

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

      //end notifications.

      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      this.splashScreen.hide();
    });
  }



        notification(){
  this.nav.push(NotificationPage);
  }

public notify() {
  console.log("Toggled: "+ this.isToggled); 
  this.nativeStorage.setItem('toggle', {property: this.isToggled, anotherProperty: 'anotherValue'})
  .then(
    () => console.log('Stored item!'),
    error => console.error('Error storing item', error)
  );

}

check(){
  this.nativeStorage.getItem('toggle')
  .then(
    (data) => {
    console.log(data.property),
    this.isToggled = data.property;
    console.log(this.isToggled);
    }
  );
}
}

1 Ответ

0 голосов
/ 08 июля 2019

В вашем .html файле

<h1> {{checked}}</h1>
<ion-toggle color="secondary" (ionChange)="toggleChanged($event)"></ion-toggle>

И внутри вашего .ts файла

  checked:boolean = false;

  constructor() {}

  toggleChanged(eve) {
    console.log(eve.checked);
    this.checked = eve.checked;
    if(!eve.checked) this.fcm.unsubscribeFromTopic('marketing');
    else this.fcm.subscribeToTopic('marketing');
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...