1

J'utilise le plug-in ionique Notifications locales pour mon application de réservation de table ionique. J'ai un tableau de bord Web qui contrôle l'application Ionic.Les notifications locales ioniques se déclenchent en cas de changement d'état

Lorsqu'une réservation est approuvée dans le tableau de bord et que le statut change, j'essaie de déclencher une notification locale.

J'ai la notification fonctionne très bien mais j'ai un problème majeur que je ne peux pas comprendre. Dans l'application ionique, un utilisateur voit une liste de toutes ses réservations, puis lorsqu'il ouvre la réservation, il ouvre une page avec tous les détails de réservation, y compris une référence visuelle à son statut de réservation, à savoir En attente, Approuvé ou Annulé.

ici est mon élément:

export class OrderDetailsPage { 

    orderId: any; 
    orderDetails: any = { 
     status: '' 
    }; 
    booking: any = {}; 





    constructor(private localNotifications: LocalNotifications, public modalCtrl: ModalController, private calendar: Calendar, public af: AngularFireDatabase, private device: Device, private appAvailability: AppAvailability, private platform: Platform, public navCtrl: NavController, public navParams: NavParams) { 

     this.orderId = this.navParams.get('id'); 
     this.af.object('/orders/' + this.orderId).subscribe(res => { 
      this.orderDetails = res; 

      //Call my check status function to trigger notification 
      this.checkStatus(); 

      var orderId = res.orderId; 
      this.af.list('/bookings', { 
       query: { 
        orderByChild: 'orderId', 
        equalTo: orderId 
       } 
      }).subscribe(res => { 
       this.booking = res[0]; 
      }); 

     }) 



    } 



    checkStatus(){ 

     if (this.orderDetails.status == 'Accepted') { 
       this.localNotifications.schedule({ 
         id: 1, 
         title: 'Your Booking Was Accepted!', 
         text: 'Your booking has been Accepted by the restaurant!', 
         sound: '' 
        }); 
      } 
    } 
} 

Le orderId est passé de la page de la liste des commandes, cela me aide l'ordre particulier à afficher sur la page Détails de la commande.

Le problème auquel je suis confronté est que la notification ne se déclenche que lorsque j'entre littéralement dans la page de détails de la commande qui est inutile. Je souhaite détecter globalement, lorsqu'un statut de commande particulier change pour cet utilisateur particulier et cette réservation particulière, de En attente (défini par défaut dans Firebase) à Approuvé et non lorsqu'un utilisateur entre dans la page des détails de la commande.

J'ai pensé à essayer le code à la racine de l'application, mais je ne serai pas en mesure d'obtenir l'ID de navParams à affecter à la variable orderId.

Je ne suis même pas sûr que ce que je veux faire est même possible avec les notifications locales?

Répondre

0

Pour ce cas d'utilisation, vous devez implémenter des notifications à distance. Vous aurez besoin d'ajouter un hook sur votre serveur, donc quand la commande change, vous envoyez également une notification en utilisant un service comme node-apns ou Ionic Push. Les notifications locales ne peuvent pas être modifiées en arrière-plan avec Ionic.