1

Ich muss Browser Push-Nachrichten sogar erstellen, wenn die Seite nicht geöffnet ist. Aber ich habe einige Einschränkungen, weil ich es in Salesforce entwickle. Also, wenn Seite geladen ist, habe ich JavaScript-Block, der Back-End-Methode aufruft und Antwort in Callback-Funktion erhält. Und ich habe festgestellt, dass ich theoretisch serviceWorker verwenden kann und es über PostMessages mit der Seite kommunizieren kann und es Benachrichtigungen anzeigen kann. Ich habe bereits ein Beispiel gefunden, um eine Benachrichtigung durch Klicken auf eine Schaltfläche anzuzeigen, aber ich muss immer noch herausfinden, wie man serviceWorker benutzt, um mit der Seite zu kommunizieren, um eine Antwort vom Server zu erhalten. Ich habe dieses Handbuch über serviceWorker http://www.html5rocks.com/en/tutorials/service-worker/introduction/ gesehen, aber es ist nicht sehr klar für mich. Ich möchte keine Middleware als GCM, nur JS auf Client-Seite verwenden. Bitte geben Sie mir einen Beispielcode, um es zu tun.Browser-Push-Benachrichtigung durch einfache Abfrage Webserver

+0

Können Sie Ihr Ziel klären? Sie benötigen keinen Service-Mitarbeiter, wenn Sie nur eine Benachrichtigung anzeigen möchten, während Ihre Seite geöffnet ist. – Marco

+0

@Marco Ich muss benachrichtigt werden, wenn die Seite geschlossen ist. Dies ist ein Beispiel https://storage-cdn.realtime.co/chrome-push/index.html – vladdihoney

+0

Leider gibt es keine Möglichkeit, eine Benachrichtigung zu erhalten, wenn die Seite geschlossen wird, ohne den Push-Dienst des Browsers zu verwenden. – Marco

Antwort

-1

Nein .... Derzeit gibt es nur eine Möglichkeit, Push-Benachrichtigungen für Benutzer zu zeigen, wenn Ihre Website mit service worker api geschlossen wird.

Der erste Weg zeigt Ihnen die Push-Benachrichtigung nur, wenn Ihre Website geöffnet ist. 1) Ajax Polling Dies ist Ansatz heißt Kometen-Ansatz, der von Facebook verwendet wird. Bei diesem Ansatz werden Sie den Server im regulären Intervall abfragen (dh Sie müssen in regelmäßigen Abständen einen Ajax-Aufruf an den Server durchführen), um zu überprüfen, ob der Benutzer eine neue Benachrichtigung zum Anzeigen hat. Bitte überprüfen Sie den folgenden Code: $ (Dokument) .ready (function() { setInterval (updateCount, 120000); }); var update = function() { var url = example.com // geben Sie Ihre eigene url

$.ajax({ 

     url:ajaxURl, 
     type: "POST", 
     dataType:"json", 
     error: function(error){ 
       console.log("Error occured in the ajax call while saving the endpoint",error); 
      }, 
     success:function(data){ 
      console.log(data) 
      if(data == new notifcation){ 
      //then show notification 
      } 
     }, 
     timeout:60000 
    }); 

};

This is simple approach to show the notification to the user. 
Cons:- 1)It will trigger to many ajax call to the server which will eventually increase the load on the server. 
     2)User have to be logged in to the system then only you can show notification to end user. 

2) Service-Worker Api Bei diesem Ansatz müssen Sie die Servicemitarbeiter api in dem Client-Browser registrieren. Sobald die Server Worker API registriert ist, wird sie im Hintergrund des Browsers ausgeführt und wartet auf das Push-Ereignis. Wenn das Push-Ereignis den Service Worker auslöst, wird die Push-Benachrichtigung auch dann ausgelöst, wenn Ihr Benutzer nicht auf Ihrer Website angemeldet ist.

Cons:- 1)the service worker api will only run in the certain browser 
     2)Your website should https for using the service worker api as they already mention in the article. 

Ich hoffe, dass ich Ihre Frage beantwortet ..

+0

sollten Sie auch eine Codeerklärung hinzufügen. !! –

+0

der erste Ansatz, den Sie erwähnt haben, ist völlig falsch !! @ ravi-gupta Lesen Sie die Frage sorgfältig "wenn die Seite nicht geöffnet ist" –