Czytałem od kilku godzin o Push Notification API i Web Notification API . Odkryłem również, że Google i Apple zapewniają usługę powiadomień wypychanych za darmo za pośrednictwem odpowiednio GCM i APNS.
Próbuję zrozumieć, czy możemy zaimplementować powiadomienie wypychane w przeglądarkach za pomocą Desktop Notification, które moim zdaniem jest tym, co robi interfejs API Web Notification. Widziałem dokumentację Google, jak to zrobić w Chrome tutaj i tutaj .
Teraz nadal nie jestem w stanie zrozumieć:
- Czy możemy używać GCM / APNS do wysyłania powiadomień push do wszystkich przeglądarek internetowych, w tym Firefox i Safari?
- Jeśli nie za pośrednictwem GCM, czy możemy mieć własne zaplecze, aby zrobić to samo?
Wierzę, że wszystkie te odpowiedzi w jednej odpowiedzi mogą pomóc wielu ludziom, którzy mają podobne zamieszanie.
Odpowiedzi:
Odpowiadam więc na własne pytanie. Mam odpowiedzi na wszystkie moje pytania od osób, które w przeszłości budowały usługi powiadomień wypychanych.
Odpowiedz na oryginalne pytania zadane 3 lata temu:
Odpowiedź: Google wycofało GCM z kwietnia 2018 r. Możesz teraz korzystać z Firebase Cloud Messaging (FCM). Obsługuje wszystkie platformy, w tym przeglądarki internetowe.
Odpowiedź: Tak, powiadomienia push mogą być wysyłane z naszego zaplecza. Obsługa tego samego dotyczy wszystkich głównych przeglądarek.
Sprawdź ten kodelab od Google, aby lepiej zrozumieć implementację.
Niektóre samouczki:
Wdrażanie własnego zaplecza w różnych językach programowania .:
Dalsze lektury: - - Dokumentację ze strony Firefox można przeczytać tutaj . - Bardzo dobry przegląd Google Push przez Google można znaleźć tutaj. - FAQ odpowiadające na najczęstsze nieporozumienia i pytania.
Czy są jakieś bezpłatne usługi, aby zrobić to samo? Niektóre firmy oferują podobne rozwiązanie w modelach darmowych, freemium i płatnych. Wymieniam kilka poniżej:
Uwaga: Wybierając bezpłatną usługę, pamiętaj, aby przeczytać Warunki świadczenia usługi. Darmowe usługi często działają poprzez zbieranie danych użytkownika do różnych celów, w tym do analizy.
Oprócz tego musisz mieć HTTPS, aby wysyłać powiadomienia wypychane. Możesz jednak uzyskać https za darmo za pośrednictwem letsencrypt.org
źródło
onesignal
, ładne informacje: 3Javier obejmował Powiadomienia i aktualne ograniczenia.
Moja sugestia:
window.postMessage
podczas gdy czekamy, aż upośledzona przeglądarka nadrobi zaległości,Worker.postMessage()
w przeciwnym razie nadal będzie działać z pracownikami sieci Web.Mogą to być opcje rezerwowe z obsługą wyświetlania komunikatów w oknie dialogowym, na wypadek, gdy test funkcji powiadomienia zakończy się niepowodzeniem lub odmowa dostępu.
Powiadomienie ma funkcję i kontrolę odmowy uprawnień:
źródło
Możesz przesyłać dane z serwera do przeglądarki za pośrednictwem zdarzeń po stronie serwera . Jest to zasadniczo jednokierunkowy strumień, do którego klient może „subskrybować” z przeglądarki. Stąd możesz po prostu tworzyć nowe
Notification
obiekty jako strumień SSE do przeglądarki:Trochę stary, ale w tym artykule Erica Bidelmana wyjaśniono podstawy SSE i podano również przykłady kodu serwera.
źródło
GCM / APNS są dostępne tylko odpowiednio dla Chrome i Safari.
Myślę, że możesz szukać
Notification
:https://developer.mozilla.org/en-US/docs/Web/API/notification
Działa w Chrome, Firefox, Opera i Safari .
źródło
Zakładam, że mówisz o prawdziwych powiadomieniach wypychanych, które mogą być dostarczane, nawet gdy użytkownik nie surfuje po Twojej witrynie (w przeciwnym razie sprawdź WebSockets lub starsze metody, takie jak długie odpytywanie).
GCM jest tylko dla Chrome, a APN tylko dla Safari. Każdy producent przeglądarki oferuje własną usługę.
Push API wymaga dwóch backendów ! Jeden jest oferowany przez producenta przeglądarki i jest odpowiedzialny za dostarczenie powiadomienia do urządzenia. Drugi powinien należeć do Ciebie (lub możesz skorzystać z usługi strony trzeciej, takiej jak Pushpad ) i jest odpowiedzialny za wywołanie powiadomienia i skontaktowanie się z usługą producenta przeglądarki (tj. GCM, APN, serwery push Mozilla ).
Ujawnienie: Jestem założycielem Pushpad
źródło
jest to prosty sposób na powiadomienie push dla wszystkich przeglądarek https://pushjs.org
źródło
Czy mogę przedefiniować twoje pytanie, jak poniżej
Tak. Do dziś (2017/05) możesz używać tej samej implementacji po stronie klienta i serwera do obsługi Chrome, Firefox i Opera (bez Safari). Ponieważ w ten sam sposób wdrożyli internetowe powiadomienia wypychane. To jest protokół Push API firmy W3C. Ale Safari ma swoją starą architekturę. Dlatego musimy oddzielnie obsługiwać Safari.
Zapoznaj się z repozytorium wypychania przeglądarki, aby uzyskać informacje na temat wdrażania powiadomień wypychanych dla aplikacji sieci Web z własnym zapleczem. Wyjaśnia na przykładach, w jaki sposób można dodać obsługę powiadomień wypychanych z sieci dla aplikacji internetowej bez żadnych usług stron trzecich.
źródło
Na razie GCM działa tylko na Chrome i Androidzie. podobnie Firefox i inne przeglądarki mają własne API.
Teraz nadchodzi pytanie, jak zaimplementować powiadomienia wypychane, aby działało ono we wszystkich popularnych przeglądarkach z własnym zapleczem.
2. po uzyskaniu punktu końcowego za pomocą Ajax zapisz go wraz z nazwą przeglądarki.
3. Musisz utworzyć zaplecze, które ma pola na tytuł, wiadomość, ikonę, kliknij URL zgodnie z wymaganiami. teraz po kliknięciu na wyślij powiadomienie, wywołaj funkcję powiedz send_push (). W tym kodzie pisz na przykład dla różnych przeglądarek
3.1 dla chromu
3.2 dla mozilli
w przypadku innych przeglądarek proszę google ...
źródło
Sugeruję użycie pubnub. Próbowałem jednak korzystać z ServiceWorkers i PushNotification z przeglądarki, jednak kiedy próbowałem, webviews tego nie obsługiwał.
https://www.pubnub.com/docs/web-javascript/pubnub-javascript-sdk
źródło