2016-08-08 16 views
2

Ich versuche, Firebase Push-Benachrichtigung mit Cordova zu implementieren. Ich benutze den Code für die neueste fcm Plug-In-Spezifikation von hier: Cordova Push PluginFireBase Push-Benachrichtigung mit Cordova

Ich kann das Register Token bekommen. Dann habe ich versucht, eine Benachrichtigung vom Firebase-Testbenachrichtigungsmodul unter Verwendung dieses Tokens zu senden. Jedes Mal, wenn ich die App in meinem Gerät funktionieren Ich habe das Warn-

„Msg: onNotification Rückruf erfolgreich registriert: OK“

es in der zweiten Funktion von FCMPlugin.onNotification Ereignis ist.

Aber die erste Funktion [wo ich die Benachrichtigung erhalten möchte] wird nicht aufgerufen. Ich finde nicht, wo ich Fehler mache. Hier ist mein Code in onDeviceReady:

function onDeviceReady() { 
    // Handle the Cordova pause and resume events 
    document.addEventListener('pause', onPause.bind(this), false); 
    document.addEventListener('resume', onResume.bind(this), false); 

    // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here. 
    var parentElement = document.getElementById('deviceready'); 
    var listeningElement = parentElement.querySelector('.listening'); 
    var receivedElement = parentElement.querySelector('.received'); 
    listeningElement.setAttribute('style', 'display:none;'); 
    receivedElement.setAttribute('style', 'display:block;'); 

    //========================= 
    FCMPlugin.getToken(
     function (token) { 
      alert("Token: " + token); 
       cordova.plugins.email.open({ 
        to: '[email protected]', 
        subject: 'Greetings', 
        body: token 
       }); 
     }, 
     function (err) { 
      alert("Error: " + 'error retrieving token: ' + err); 
     } 
    ); 

    FCMPlugin.onNotification(
     function (data) { 
      alert("Notify: " + JSON.stringify(data)); 
      if (data.wasTapped) { 
       //Notification was received on device tray and tapped by the user. 
       alert("Wrapped Notify: " + JSON.stringify(data)); 
      } else { 
       //Notification was received in foreground. Maybe the user needs to be notified. 
       alert("Notify: " + JSON.stringify(data)); 
      } 
     }, 
     function (msg) { 
      alert("Msg: " + 'onNotification callback successfully registered: ' + msg.Notification); 
     }, 
     function (err) { 
      alert("Error: " + 'Error registering onNotification callback: ' + err); 
     } 
    ); 
}; 
+0

Hey Sie eine Lösung bekommen.? Meine FCM-Benachrichtigung wurde erfolgreich zugestellt, aber mein Problem ist, dass ich benachrichtigt werden möchte, wenn ich auf die Benachrichtigung klicke. Ich benutze das gleiche Plugin, welches du benutzt. wenn du das gelöst hast dann sag mir bitte. –

+0

@ KAUSHAL: Ich habe den Stecker gewechselt. Der folgende Stecker funktioniert bei mir gut: [link] (https://lokesh-patel.blogspot.com/2016/06/cordova-plugin-firebase-cloud -messaging.html? showComment = 1470646658688 # c897350184092951555) –

Antwort

1

Sie vermissen zu Ihrem Thema zu abonnieren, bevor onNotification Funktion wie folgt aus:

FCMPlugin.subscribeToTopic('topic'); 
2

Stellen Sie sicher, "click_action":"FCM_PLUGIN_ACTIVITY" auf die Nutzlast für die REST-API hinzufügen. Dies muss für Android vorhanden sein. Wenn dies nicht möglich ist, erhalten Sie KEINE Daten von einer angetippten Benachrichtigung (oder hören einen Ton).

Siehe das REST-API Nutzlast Beispiel aus der cordova-plugin-fcm Dokumentation:

//POST: https://fcm.googleapis.com/fcm/send 
//HEADER: Content-Type: application/json 
//HEADER: Authorization: key=AIzaSy******************* 
{ 
    "notification":{ 
    "title":"Notification title", 
    "body":"Notification body", 
    "sound":"default", 
    "click_action":"FCM_PLUGIN_ACTIVITY", // <<<<<<< Must be present for Android 
    "icon":"fcm_push_icon" 
    }, 
    "data":{ 
    "param1":"value1", 
    "param2":"value2" 
    }, 
    "to":"/topics/topicExample", 
    "priority":"high", 
    "restricted_package_name":"" 
}