2016-11-25 3 views
2

Ich benutze nativescript-local-notifications und nativescript-plugin-firebase.Ortsangabe. nativescript-local-notifications erstellt immer zwei Benachrichtigungen

Ich möchte jedes Mal Benachrichtigung erstellen, wenn Server mir eine Nachricht senden. Hier ist Code:

firebase.init({ 
     storageBucket: 'gs://shao-by-partner-firebase.appspot.com', 
     persist: true, // optional, default false 


     onPushTokenReceivedCallback: function (token) { 
      Config.device_token = token; 
      console.log("Firebase plugin received a push token: " + token); 
     }, 
     onMessageReceivedCallback: function (message) { 
        LocalNotifications.schedule([{ 
         id: 1, 
         title: 'The title', 
         body: 'Recurs every minute until cancelled', 
         ticker: 'The ticker', 
         badge: 1, 
         smallIcon: 'res://heart.png' 
         }]).then(
          function() { 
          console.log("Notification scheduled"); 
          }, 
          function(error) { 
          console.log("scheduling error: " + error); 
          } 
        ) 
     } 
    }).then(
     function (result) { 
      console.log("Firebase is ready"); 
     }, 
     function (error) { 
      console.log("firebase.init error: " + error); 
     } 
    ); 
} 

Aber immer zwei Benachrichtigungen statt einer erstellt. Und die erste Benachrichtigung ist leer. Und eine zweite Benachrichtigung ist, dass ich erstellt habe. Was ist los mit dir?

enter image description here

Antwort

0

Ich könnte hier falsch liegen, aber Sie verwenden zwei Plugins, um Remote-Benachrichtigungen zu behandeln?

nativescript-plugin-firebase behandelt bereits Benachrichtigungen für Sie, ich glaube nicht, dass Sie das lokale Benachrichtigungs-Plugin benötigen.

In dem von Ihnen geposteten Beispiel erhalten Sie die ursprüngliche Benachrichtigung (die leere), die lokale, die Sie in der onMessageReceivedCallback erstellen.

https://github.com/EddyVerbruggen/nativescript-plugin-firebase/blob/master/docs/MESSAGING.md#handling-a-notification

+0

Möglicherweise haben Sie Recht, aber wenn ich LocalNotifications.schedule (...) lösche, werden beide Benachrichtigungen nicht erstellt. –

+0

Ja, Sie hatten absolut Recht, Entschuldigung für so lange Antwort –

0

Das ist nichts in Ihrem onMessageReceived, um zu bestimmen, ob die Nachricht, jeden Inhalt hatte. Sie können versuchen, Ihrer onMessageReceived-Funktion eine bedingte Anweisung hinzuzufügen und zu überprüfen, ob die Nachricht Inhalt enthält. zB

+0

Ich überprüfe es. Aber es ist nicht das Problem zu lösen. –

0

Ich fand Lösung. Jedes Mal, wenn ich LocalNotification erstelle, lösche ich die Benachrichtigung mit der ID 0: LocalNotifications.cancel (0); Aber ich weiß immer noch nicht, woher es kommt.

Verwandte Themen