Google Chrome od wersji 42 obsługuje Push API przez Serwery Google Korzystanie z GCM Prawdopodobnie widziałeś już te monity o dostęp do powiadomień. Jeśli zezwolisz na dostęp, witryna będzie mogła wysyłać Ci powiadomienia. Ta funkcja jest zupełnie nowa i niewiele osób o niej wie, jednak moim zdaniem ma już duże wady:
  • Każda strona żąda uprawnień w przeglądarce, trudno jest kontrolować, ile źródeł może teraz wysyłać Ci powiadomienia, każda ma swój własny proces w tle, który budzi się osobno, nie ma historii otrzymanych powiadomień ani filtrowania, nie ma synchronizacji subskrypcji między urządzenia
  • Witryny muszą wysyłać powiadomienia bezpośrednio do urządzeń, monitorować istotność bazy danych urządzeń, monitorować urządzenie każdego użytkownika indywidualnie
  • Ta funkcja działa tylko w witrynach z SSL.

Usługa pośrednicząca, która zajmuje się wszystkimi tymi funkcjami, może rozwiązać pojawiające się problemy.

Trochę teorii

Główny artykuł, na którym faktycznie wykonałem tę funkcję, można znaleźć
Krótko mówiąc, przeglądarka tworzy Service-Worker (dostępny od Chrome 40), jest to proces w tle w JS. Nie działa stale w tle, ale odpowiada na różne prośby z zewnątrz. Na przykład, gdy nadejdzie wiadomość push. Oczywiście nie wymaga otwórz stronę. Co więcej, działa nawet wtedy, gdy przeglądarka jest zamknięta (no cóż, nie całkowicie zamknięta, ale w tle).

Gdy nadejdzie wiadomość Push, przeglądarka wyświetli powiadomienia. To wszystko. Pozwala to w pełni wdrożyć odbiór powiadomień push bez żadnych aplikacji, ponadto działa na androidzie w mobilnym chrome! Z oczywistych niedociągnięć można zidentyfikować w ten moment fakt, że nie ma możliwości wysłania ładunku w wiadomości push, tj. samą wiadomość. Google przypisuje to problemom bezpieczeństwa i informuje, że w Chrome 44 problem został całkowicie rozwiązany, a przeglądarka będzie mogła bezpośrednio odbierać dane. Ponadto według niektórych raportów, jeśli przeglądarka została zamknięta, żądanie nie dotrze do niej. Ten problem został rozwiązany przez odrzucenie wszystkich powiadomień, które nie zostały potwierdzone przy odebraniu kolejnej wiadomości.

Jak PushAll rozwiązuje problem

Możesz wysyłać powiadomienia przez Push API nawet bez strony internetowej. Oznacza to, że możesz utworzyć kanał i wysyłać powiadomienia ręcznie, z serwera przez curl lub podłączając kanał RSS. W takim przypadku użytkownik zezwala na dostęp do wysyłania do serwisu PushAll.
Jednocześnie deweloper nie musi zastanawiać się, do kogo wysyła powiadomienie. W aplikacji na Androida, w dodatku Chrome lub bezpośrednio przez API Push. Może wysłać wiadomość do kilkunastu użytkowników, ale w rzeczywistości trafi ona na każde z 2-3 urządzeń każdego użytkownika. W przyszłości obejmie to inne przeglądarki i inne platformy, takie jak iOS i WP.

Testowanie

Funkcja została napisana zaledwie wczoraj i dlatego wymagane jest testowanie.

Aby przetestować powiadomienia za pośrednictwem Push API, musisz wejść na stronę PushAll.ru i zalogować się za pomocą swojego konta Google.

Zaraz po zalogowaniu zostaniesz przeniesiony do katalogu kanałów. W prawym górnym rogu znajduje się przełącznik, który włącza nową funkcję.

Po włączeniu Chrome poprosi Cię o dostęp do powiadomień. Następnie musisz przejść do sekcji profilu i „pingować” urządzenie

Napisz do mnie w osobistym lub w komentarzach, jak działają powiadomienia. Niektóre osoby miały problemy z powiadomieniami i chciałbym naprawić sytuację. Sprawdź też powiadomienia na swoim Smartfon z Androidem. Podczas testów myślę, że w katalogu znajdziesz kilka interesujących kanałów.

Natychmiast, aby nie było pytań: nie jest konieczne otrzymywanie wszystkich powiadomień z kanałów. Zasubskrybowałem kanał, otworzyłem go ponownie - otworzyłem filtr, wszedłem słowa kluczowe. W przypadku tych tematów, które są dla Ciebie ważne, przede wszystkim powiadomienia będą wysyłane natychmiast na urządzenia, a resztę możesz przeczytać z samych witryn (dotyczy to np. kanału SoHabr lub kanałów serialowych)

horyzont

Ta funkcja pozwala dotrzeć do dużej liczby użytkowników. Wiele osób ma trudności z zainstalowaniem aplikacji lub dodatku, ale naciśnięcie kilku przycisków nie jest trudne.
W przyszłości napiszę specjalny widżet dla witryn. Za jednym kliknięciem będzie można zrobić 4 rzeczy na raz.
  • Zarejestrować.
  • Wejść
  • Subskrybuj
  • Włącz powiadomienia Push API w przeglądarce.
Oznacza to, że użytkownik kliknie przycisk, zostanie poproszony o dostęp do konta Google, zostanie poproszony o dostęp do powiadomień - to wszystko. Użytkownik jest gotowy do otrzymywania powiadomień. Co więcej, jeśli użytkownik następnie pobierze aplikację na jakąkolwiek inną platformę, będzie nadal otrzymywać powiadomienia z Twojej witryny, no cóż, dopóki nie zrezygnuje z ich subskrypcji w konto osobiste. Jednocześnie mój serwis umożliwia wysyłanie nawet do urządzenia mobilne powiadomienia bez instalowania aplikacji!

Push - powiadomienie, co to jest? Jest to rodzaj powiadomienia, które pojawia się po wejściu na określone strony, w prawym lub lewym górnym rogu okna przeglądarki, oferując zasubskrybowanie wiadomości, aktualizacji strony lub innych zmian w odwiedzanym portalu. Ogólnie rzecz biorąc, jest to wyskakujące okienko z wezwaniem do subskrypcji witryny.

Z pewnością nie mam nic przeciwko jakimkolwiek subskrypcjom. Na przykład, jeśli lubisz i jest dla Ciebie użyteczny materiał, który jest publikowany na naszej stronie, możesz łatwo zapisać się do nas za pomocą tego samego RSS lub skorzystać z formularza subskrypcji poczty, a także dołączyć do nas Grupa VK lub śledź nas na Youtube. A co najważniejsze, możesz to zrobić z własnej inicjatywy, a nie dlatego, że okienko ze słowem „ Subskrybuj, subskrybuj, subskrybuj».

Popularność takich powiadomień push dopiero zaczyna rosnąć, w wyniku czego coraz więcej serwisów próbuje na własną rękę wprowadzać podobne. Jestem pewien, że wszystkie serwisy informacyjne mają tę funkcję włączoną od dłuższego czasu.

Najbardziej zaskakujące jest to, że moda na tego typu powiadomienia dopiero zaczęła nabierać rozpędu i jest już dość zmęczona wszystkimi. Wielu porównuje je z tym samym nachalna reklama i wyskakujące okienka, które tylko przeszkadzają i irytują.

W tym samouczku pokażę Ci, jak wyłączyć powiadomienie o subskrypcji w ustawieniach przeglądarki i na zawsze pozbyć się tego denerwującego wyskakującego okienka.

Wyłączanie powiadomień push w Mozilla Firefox

W zasadzie wyłączenie wyświetlania powiadomień w prawie wszystkich przeglądarkach następuje bezpośrednio w ustawieniach. Ale Firefox okazał się wyjątkiem, tak, w ustawieniach możesz wyłączyć powiadomienie, zaznaczając pole „Nie przeszkadzać” w ustawieniach treści, ale będą one blokowane tylko do momentu ponownego uruchomienia przeglądarki.

Gdy tylko ponownie otworzysz Firefoksa, ustawiony wcześniej znacznik jest automatycznie odznaczany i wszystko zaczyna się od nowa. Oczywiście ta opcja nie będzie odpowiadać wszystkim, więc dla takich użytkowników, którzy chcą raz na zawsze wyłączyć powiadomienia push, należy wykonać następujące czynności:

Wartość ustawiona na false oznacza, że ​​nie będziesz już zawracać sobie głowy subskrypcją na otrzymywanie powiadomień push.

Blokowanie powiadomień push w Google Chrome

W Chrome wyłączenie powiadomień jest znacznie prostsze, ponieważ możesz to zrobić w zwykłych ustawieniach i nie musisz wchodzić w konfigurację przeglądarki.


W razie potrzeby ponownie uruchamiamy przeglądarkę i cieszymy się z braku stale wyskakujących ofert, aby otrzymywać powiadomienia z odwiedzonej witryny.

Pozbywanie się powiadomień push w przeglądarce Yandex

Następnym będzie nie mniej znana przeglądarka Yandex. Z pewnością wiele osób wie, że do stworzenia tej przeglądarki użyto tego samego silnika, co w Chrome, więc nawet ustawienia są prawie identyczne.


Na przykład moje ustawienia z jakiegoś powodu zostały zapisane dopiero za drugim razem, nie wiem z czym to jest związane, może zamiast przycisku „Zakończ” kliknąłem na krzyżyk i po prostu zamknąłem okno, w wyniku których ustawienia nie zostały zapisane. Otóż ​​najważniejsze, że za drugim razem wszystko się udało i prośba o subskrypcję powiadomień zniknęła.

Czy można wyłączyć powiadomienia push w Operze?

I oczywiście nie ominiemy opery. Wiem, że bardzo duża liczba użytkowników nadal woli z niego korzystać. Dlatego oto instrukcja wyłączenia powiadomień push dla Opery.


Ogólnie ustawienia nie różnią się nawet zbytnio od poprzednich przeglądarek, ale w zasadzie nie jest to ważne, najważniejsze jest to, że teraz prośby o otrzymywanie powiadomień z witryny nie będą nam już przeszkadzać.

Jak wyłączyć powiadomienia push (push) w Przeglądarka Yandex, Chrome, Firefox i Opera

Jak wyłączyć powiadomienia push – to pytanie niepokoi niektórych użytkowników, którzy widzą powiadomienia w przeglądarce po zalogowaniu się do wielu witryn w Internecie. Technologia push ma na celu dystrybucję informacji w Internecie od dostawcy, w tym przypadku witryny, do użytkownika tej witryny.

Powiadomienia push dla serwisu są potrzebne, aby informować odwiedzających serwis o nowościach, głównie o ukazaniu się nowych artykułów. W takim przypadku odwiedzający otrzymuje powiadomienia ze strony w odpowiednim czasie i może natychmiast przeczytać wiadomości.

Powiadomienia w imieniu witryny są wysyłane za pomocą usługi innej firmy, która organizuje dostarczanie powiadomień na komputery użytkowników.

Co to jest powiadomienie push na komputerze? Jeśli odwiedzający witrynę zgadza się na otrzymywanie wiadomości od ten zasób, wtedy od czasu do czasu na pulpicie użytkownika pojawiają się powiadomienia o nowościach z tej strony.

Jak działają powiadomienia push

Odwiedzając witrynę, która ma włączoną funkcję wysyłania powiadomień, odwiedzający każdorazowo widzi prośbę o zezwolenie na wyświetlanie powiadomień, w której proponuje kliknąć przycisk „Zezwól” lub „Zablokuj”. Nazwy przycisków mogą być różne, ale znaczenie jest wszędzie takie samo.

Odwiedzający witrynę może zignorować to wyskakujące okienko, ponieważ okno żądania powiadomienia push jest małe i nie przeszkadza w przeglądaniu witryny.

Wygląd takich okien różni się w zależności od serwisu, który wysyła powiadomienia z tej strony.

Klikając przycisk „Zezwól”, wyrażasz zgodę na otrzymywanie wiadomości push na swój komputer.

W obszarze powiadomień na pulpicie komputera użytkownika pojawią się powiadomienia o nowościach na tej stronie. Zwykle jest to wiadomość o wydaniu nowego artykułu. Niektóre witryny nadużywają możliwości wysyłania alertów, powiadamiając o wszystkim pod rząd, czasami wysyłając niepotrzebne informacje.

Po otrzymaniu powiadomienia push użytkownik może przejść do serwisu, aby przeczytać artykuł, lub zamknąć powiadomienie, ignorując tę ​​wiadomość. Takie powiadomienia ze stron praktycznie nie przeszkadzają w pracy na komputerze, ponieważ wyświetlają się w obszarze powiadomień i zamykają się samoistnie po krótkim czasie.

Aby prośba o zgodę na wysyłanie alertów z tej witryny nie pojawiała się już podczas ponownego odwiedzania tej witryny, kliknij przycisk „Zablokuj”.

Jeśli już otrzymujesz wiadomości push z określonej witryny, użytkownik może samodzielnie wyłączyć powiadomienia push w swojej przeglądarce, w której zezwolił na otrzymywanie powiadomień na swoim komputerze.

Jak usunąć powiadomienia push po otrzymaniu alertu

W wielu powiadomieniach, w zależności od ustawień usługi, która wysyła powiadomienia, możesz wyłączyć powiadomienia push bezpośrednio w oknie otwartej wiadomości.

Aby to zrobić, kliknij ikonę ustawień (koła zębatego), a następnie wybierz „Wyłącz powiadomienia z witryny”.

Po tym powiadomienia z tej witryny nie będą się już pojawiać na Twoim komputerze.

Jak wyłączyć powiadomienia push w Google Chrome

Wprowadź ustawienia przeglądarki Google Chrome, przewiń kółkiem myszy, kliknij link „Zaawansowane”.

W sekcji „Prywatność i bezpieczeństwo” kliknij przycisk „Ustawienia witryny”. W otwartym oknie „Ustawienia witryny” znajdź sekcję „Powiadomienia”.

Tutaj możesz skonfigurować otrzymywanie alertów z witryn. Domyślnie zaznaczona jest opcja „Zapytaj o pozwolenie przed wysłaniem (zalecane)”.

Aby usunąć powiadomienia push w Przeglądarka Google Chrome, aktywuj element „Nie pokazuj alertów na stronach”.

Aby zapobiec otrzymywaniu alertów z określonej witryny, kliknij przycisk „Dodaj”, który znajduje się naprzeciwko parametru „Zablokuj”.

W oknie „Dodaj witrynę” wprowadź adres witryny, a następnie kliknij przycisk „Dodaj”.

Aby skonfigurować odbieranie wiadomości push, kliknij przycisk „Dodaj” znajdujący się naprzeciwko opcji „Zezwól”.

W oknie, które zostanie otwarte, dodaj żądaną witrynę do listy witryn, z których możesz otrzymywać powiadomienia w przeglądarce Google Chrome.

Jak wyłączyć wiadomości push w Mozilla Firefox (1 sposób)

Wprowadź ustawienia przeglądarki Mozilla Firefox, otwórz sekcję „Prywatność i bezpieczeństwo”. W opcji „Uprawnienia” przejdź do opcji „Powiadomienia”.

Zaznacz pole obok opcji Wyłącz powiadomienia do czasu ponownego uruchomienia Firefoksa. Po tym powiadomienia push nie będą wyświetlane, dopóki przeglądarka Mozilla Firefox nie zostanie wyłączona.

Aby zarządzać alertami, kliknij przycisk "Ustawienia...". W oknie "Opcje - Zezwolenie na wyświetlanie powiadomień" znajduje się lista witryn, z których powiadomienia są dozwolone lub blokowane.

Jeśli witryna ma obok niej stan „Zablokuj”, to powiadomienia z tej witryny nie pojawiają się na Twoim komputerze, ponieważ wcześniej zablokowałeś żądanie wysyłania powiadomień z tej witryny.

Jeśli status „Zezwól” znajduje się obok adresu witryny, powiadomienia z tej witryny będą wyświetlane na Twoim komputerze.

Możesz usunąć dowolną witrynę z listy za pomocą przycisku Usuń witrynę lub usunąć wszystkie witryny z listy, klikając przycisk Usuń wszystkie witryny.

Po tym czasie nowe powiadomienia ze zdalnej witryny nie pojawią się na pulpicie komputera. Gdy ponownie odwiedzisz tę witrynę, odrzuć prośbę o otrzymywanie alertów.

Aby zablokować otrzymywanie nowych wiadomości z witryn innych niż wymienione na tej liście, zaznacz pole wyboru „Blokuj nowe prośby o wysyłanie powiadomień”.

Aby zakończyć konfigurację kolejności otrzymywania powiadomień, kliknij przycisk „Zapisz zmiany”.

Jak usunąć powiadomienia push w Mozilla Firefox (2 sposoby)

Aby całkowicie wyłączyć powiadomienia Przeglądarka Mozilli Firefox, musisz wprowadzić ukryte ustawienia przeglądarki.

Wpisz w pasku adresu wyrażenie: "about:config" (bez cudzysłowów). W oknie, które się otworzy, kliknij przycisk „Akceptuję ryzyko!”.

W nowym oknie wpisz w polu „Szukaj” wyrażenie: „dom.webnotifications.enabled” (bez cudzysłowów), a następnie naciśnij klawisz „Enter”.

Domyślne ustawienie to „prawda”. Zaznacz linię, kliknij kliknij prawym przyciskiem myszy myszy, wybierz "Przełącz" z menu kontekstowego. Wartość parametru zmieni się na „fałsz”.

Jak wyłączyć powiadomienia push w Yandex.Browser

Wprowadź ustawienia przeglądarki Yandex, przejdź do zakładki „Witryny”.

W sekcji „Witryny” przejdź do opcji „Prośby o wysyłanie powiadomień”. Są tu trzy możliwości działania:

  • Pokaż żądania wysłania (zalecane).
  • Nie pokazuj próśb o wysłanie.
  • Automatycznie subskrybuj powiadomienia.

Wybierz żądaną opcję, która reguluje procedurę otrzymywania wiadomości Push. Aby całkowicie wyłączyć wszystkie powiadomienia push w Yandex Browser, wybierz opcję „Nie pokazuj wysyłania żądań”.

Jeśli chcesz skonfigurować odbieranie poszczególnych powiadomień, kliknij link „W innych witrynach”. Następnie w oknie „Wysyłanie powiadomień” wybierz, które powiadomienia push chcesz blokować, a które zezwolić.

Otwórz zakładkę „Dozwolone” lub „Zabronione”, używając przycisku „Dodaj”, dodaj link do witryny w odpowiedniej sekcji.

Jak wyłączyć powiadomienia push w Operze?

Wejdź do menu Przeglądarka Opera, kliknij na przedmiot menu kontekstowe„Ustawienia”. Następnie wybierz sekcję „Zaawansowane”, kliknij „Bezpieczeństwo”.

W sekcji Prywatność i bezpieczeństwo wybierz opcję Ustawienia treści. Znajdź opcję „Powiadomienia”.

W oknie Powiadomienia opcja „Pytaj o pozwolenie przed wysłaniem (zalecane)” jest domyślnie włączona.

Tutaj musisz dodać witrynę do sekcji „Zablokuj” lub „Zezwól”.

Jak wyłączyć powiadomienia push w Microsoft Edge

Zaloguj się do ustawień przeglądarki Microsoft Edge. Wybierz „Opcje”, w oknie „Opcje” kliknij element „Widok Dodatkowe opcje”. W oknie „Opcje zaawansowane” wybierz „Powiadomienia”, a następnie kliknij przycisk „Zarządzaj”.

Okno Zarządzaj powiadomieniami pokaże witryny, które proszą o pozwolenie na wyświetlanie powiadomień. Możesz zmienić uprawnienia dla określonych witryn.

Artykuł Konkluzje

Użytkownik może samodzielnie wyłączyć powiadomienia push (push) w przeglądarce, które otrzymuje na Pulpicie swojego komputera, umożliwiając wysyłanie powiadomień z określonej strony internetowej.

Powiadomienia push pojawiają się w oknie przeglądarki, nawet jeśli byłeś offline w momencie ich wysłania. To świetne narzędzie marketingowe do promowania produktów i usług Twojej firmy. Mimo to mogą irytować użytkowników, jeśli towarzyszy im dźwiękowe powiadomienie. Czytaj dalej, aby dowiedzieć się, jak je wyłączyć.

Jak włączyć lub wyłączyć powiadomienia web push w Google Chrome

Przejdź do ustawień przeglądarki

Kliknij ikonę ustawień po prawej stronie okna przeglądarki i wybierz „Ustawienia”.

Wybierz ustawienia zaawansowane

Przewiń stronę w dół i wybierz „Ustawienia zaawansowane”.

Wybierz ustawienia treści

Kliknij „Ustawienia treści” w sekcji „Prywatność i bezpieczeństwo”.

Wybierz alerty

Kliknij Alerty.

Tutaj możesz dodać witryny, których alerty chcesz otrzymywać, lub zablokować witryny, których alerty nie są dla Ciebie ważne.

Możesz też sprawić, że otrzymasz prośbę o zgodę na wysyłanie powiadomień.

Korzystaj z powiadomień push, aby informować klientów o zapasach, wyprzedażach i najnowszych postach na swoim blogu.

Aby Twoje powiadomienia nie były blokowane, wysyłaj je tylko do tych użytkowników, którzy wyrazili zgodę na ich otrzymywanie.

Powiadomienia push w SendPulse

Wysyłanie powiadomień w naszym serwisie jest bezpłatne - w dowolnej ilości i na zawsze! Jeśli już to robisz marketing e-mailowy, użyj push jako dodatkowego kanału dostarczania wiadomości. Na przykład wysłałeś e-mail ze zniżką na specjalny dzień w przeddzień święta, ale subskrybent go nie otworzył. Wyślij powiadomienie push w X dzień, a będziesz mieć większą szansę na zwiększenie sprzedaży.

Personalizuj i segmentuj powiadomienia, aby uzyskać spersonalizowane wrażenia, testuj wiadomości, ustaw automatyczne wysyłanie po określonych zdarzeniach. Tylko jeden wiersz kodu na witrynę pozwala uniknąć wysokich konwersji i sprzedaży dodatkowej.

Od 2015 roku technologia zaczęła szybko zdobywać popularność. Push API z Chrome. Coraz częściej podczas odwiedzania różnych witryn z wiadomościami (i nie tylko z wiadomościami) odwiedzającym przedstawiana jest taka ramka systemowa z żądaniem:

Okno systemowe Google Chrome z prośbą o pozwolenie na dostarczanie powiadomień z witryny.

Szczerze uważam ten kanał dostarczania treści (lub pozyskiwania użytkowników, jakkolwiek chcesz go nazwać) za jeden z najbardziej obiecujących. Być może nawet za kilka lat te powiadomienia push staną się tym samym obowiązkowym atrybutem każdej szanującej się witryny informacyjnej, jaką są dzisiaj RSS i publiczność w sieciach społecznościowych.

Jednak dziś ta technologia jest jeszcze dość młoda i niewiele jest wskazówek dotyczących jej wykorzystania nie tylko w rodzimym Internecie, ale także w zagranicznym. Przykładu nie trzeba daleko szukać – – nawet sam Google, gdy ogłosił Push API, wydał skromny komunikat prasowy aż do łez. I dopiero teraz, po kilku godzinach zagłębiania się w Google FAQ dla programistów, możesz zbierać informacje, aby zebrać przynajmniej działające skrypty do wysyłania powiadomień push do swoich czytelników.

Jak zrobić takie powiadomienia push na swojej stronie? Są tu dwa sposoby: skorzystać z usług firm trzecich (już istnieją, a niektóre z nich są bardzo dobre) lub stworzyć własne rozwiązanie. Ponieważ jestem zwolennikiem minimalnego korzystania z usług stron trzecich na stronie, nasza droga do Miasta była przesądzona.

Ale dla sprawiedliwości warto powiedzieć kilka słów o rozwiązaniach zewnętrznych. Przyznam się, że nie studiowałem zbytnio tego rynku (przyczyna jest wymieniona powyżej), ale nie można nie wspomnieć o usłudze OneSignal, której najbardziej atrakcyjną cechą jest to, że ich usługi są całkowicie bezpłatne  – zarabiają na sprzedaży danych o odwiedzających witrynę klienta. Jest też serwis Jeapie, mają po swojej stronie bardzo kompetentny marketing i z reguły dobra opinia. Warto jednak zauważyć, że w pewnym momencie Meduza odmówiła ich usług - Platforma po prostu nie była gotowa na tyle pchnięć, które trzeba było wysłać do ogromnej publiczności Meduzy.

Realizacja. Uzyskiwanie danych logowania od Google.

W danych źródłowych witryna napisana w Szyny 3.2.8 a zadaniem jest stworzenie na nim pushera powiadomień dla Chrome.

Pierwszym krokiem jest przeniesienie witryny do protokołu HTTPS (bezpieczny protokół hipertekstowy), czyli wykonanie certyfikatu SSL dla Twojej witryny. Bez tego powiadomienia push nie będą działać (nie sprawdzałem ze zwykłym http, ale wszędzie tak jest napisane). Nie będę się rozpisywał o tym, czym jest SSL, czym jest zjadany, jak umieścić certyfikat na serwerze i go podłączyć – w internecie roi się od podobnych artykułów. Do tych celów będę tylko polecał StartSSL. To dobry Urząd Certyfikacji, z którym zaprzyjaźniają się wszystkie znane mi przeglądarki, z celowo prostą procedurą rejestracji i weryfikacji (wystarczy znać minimum język angielski) uzyskać absolutnie darmowy certyfikat SSL poziom podstawowy, który może zawierać jeszcze pięć (sic!) subdomen.

Tak więc otrzymaliśmy certyfikat i odpowiednio skonfigurowaliśmy nasz Nginx lub Apache. Teraz w pasek adresu przeglądarka obok adresu naszej strony świeci na zielono, najsłodsza kłódka, napis https://, a jeśli zależy Ci na pieniądzach, nazwę organizacji.

Dalej idziemy do Platforma Google Cloud, gdzie się rejestrujemy nowy projekt, nazywając go na przykład MySite-Push.

Utwórz nowy projekt w Google Cloud Platform

Po kilku sekundach, gdy projekt jest tworzony, przez sekcję Łączenie z Google API, link Włącz i skonfiguruj API przejdź do sekcji, w której znajduje się cała lista Metody API dla wszystkich Usługi Google. Tam musimy uwzględnić metodę Wiadomości Google Cloud z sekcji Mobile API.

metoda Wiadomości Google Cloud z sekcji Mobile API

Najprawdopodobniej podczas łączenia się z metodą Google poprosi o zarejestrowanie dodatkowych danych. Na przykład poprosi o wyjaśnienie, skąd będzie wywoływane API, a następnie wskazujemy rodzaj potrzebnego handlera (na przykład serwer WWW).

Następnie określamy IP serwera (jeśli zostaniesz o to poproszony) i generujemy klucz prywatny, który posłuży do autoryzacji żądań. Tego klucza oczywiście będziemy potrzebować w przyszłości.

Wygenerowany klucz prywatny dostępu do interfejsu Google API

Po naciśnięciu przycisku Gotowy znajdziemy się na stronie, na której będziemy musieli określić domenę i potwierdzić prawa do niej za pomocą narzędzi Search Console. W Internecie jest również sporo artykułów na ten temat, a sama procedura jest intuicyjna. Więc nie zatrzymujmy się tutaj.

W rzeczywistości nie potrzebujemy niczego więcej z Google Cloud Platform. Klucz i identyfikator.

Realizacja. Wstępna konfiguracja witryny.

Teraz w Folder główny na naszej stronie musimy dodać plik manifest.json który będzie zawierał następujące informacje :

( "name": "mysite.ru Push test", // Nazwa witryny "display" : "standalone", // Określ, gdzie mają być wyświetlane powiadomienia "gcm_sender_id": "258466066904" // Ten sam identyfikator aplikacji w Google Cloud Platform )

To jest najbardziej niezbędne minimum informacje dotyczące manifestu. Możesz google i jakie dodatkowe parametry możesz tam podać.

Cóż, dodaj do sekcji metatag z linkiem do manifestu:

Teraz w tym samym miejscu, w folderze głównym, utwórz plik push.js, gdzie wpisujemy następujący kod:

„użyj ściśle”; function SendPushMe() ( if ("serviceWorker" w nawigatorze) ( console.log("Service Worker jest obsługiwany"); navigator.serviceWorker.register("/sw.js").then(function() ( return navigator.serviceWorker .ready; )).then(function(reg) ( console.log("Service Worker jest gotowy:^)",reg);reg.pushManager.subscribe((userVisibleOnly: true)).then(function(sub) ( console.log("endpoint:", sub.endpoint); $.get("https://mysite.ru/createpushadresat?adresat=" + sub.endpoint, function(data) ()); )); )) .catch(function(błąd) ( console.log("Błąd programu Service Worker:^(", błąd; )); ) )

Co robi ten kod? Podczas wywoływania metody SendPushMe() sprawdza, czy przeglądarka obsługuje subskrypcję powiadomień wypychanych. Następnie, jeśli tak (w konsoli dziennika programisty, komunikat „ Service Worker jest obsługiwany”, w przeciwnym razie pojawi się tam komunikat o błędzie), spróbuje się zarejestrować Pracownik serwisu który pojawi się niedługo o /sw.js W tym momencie użytkownik zobaczy żądanie przeglądarki, aby potwierdzić akcję. Następnie, jeśli użytkownik wyrazi zgodę, pracownik zostanie zarejestrowany i pod adresem https://mysite.ru/createpushadresat POBIERZ żądanie w zmiennej adres zamieszkania zostanie przekazany unikalny identyfikator przeglądarki. Będzie również wyświetlany w konsoli dziennika programisty.

Teraz stwórzmy Service Workera. To będzie plik sw.js w folderze głównym:

„użyj ściśle”; self.addEventListener("instalacja", function(event) ( event.waitUntil(self.skipWaiting()); )); self.addEventListener("push", function (event) ( event.waitUntil(fetch("/latest.json")).then(function (odpowiedź) ( if (response.status !== 200) ( console.log(" Błąd żądania Latest.json: " + response.status); wyrzuć nowe Error(); ) return response.json().then(function (data) ( if (data.error || !data.notification) ( console.error („Latest.json Format Error.”, data.error); wyrzuć nowe Error(); ) var title = data.notification.title; var body = data.notification.body; var icon = „https://mysite. ru/my_beautiful_push_icon.png"; return self.registration.showNotification(tytuł, ( body: body, icon: icon, data: ( URL: data.notification.url ) ) ) ) )).catch(function (err) ( konsola .error("Błąd pobierania danych", błąd; )); ))); )); self.addEventListener("notificationclick", funkcja (zdarzenie) ( event.notification.close(); var url = event.notification.data.url; event.waitUntil(clients.openWindow(url)); ));

Ten kod, po jego wywołaniu, tworzy powiadomienie, którego dane są pobierane z pliku najnowszy.json zlokalizowany w https://mysite.ru/latest.json. Jeśli żądanie tego pliku nie powiedzie się lub witryna odpowie z nieprawidłowym json, odpowiedni wpis pojawi się w konsoli dziennika programisty. Jeśli wszystko jest w porządku, zostanie wygenerowany push. Push składa się ze zmiennych ciało- to jest krótka wiadomość tekstowa, tytuł- tytuł push, adres URL- link, który użytkownik kliknie po kliknięciu powiadomienia i Ikona- piękną i zachwycającą (najlepiej kwadratową, o boku co najmniej 150px) ikonę, na której będzie widoczne logo serwisu. A konkretnie w tym skrypcie Ikona- parametr statyczny, a wszystkie inne są aktualizowane dynamicznie najnowszy.json.

Skrypt można trochę przenieść, żeby ikona też była parametrem dynamicznym, ale wydaje mi się, że będzie to absolutnie zbędne, lepiej notyfikować markę niż dostarczać obrazka, którego tak naprawdę nie widać małym pchnięciem .

I wreszcie tworzymy najnowszy.json z którego będą pobierane informacje do powiadomień. Myślę, że nietrudno zgadnąć, że będzie leżał w folderze głównym. A oto jego treść:

(„notification”:("url":"https://mysite.ru/posts/1","title":"Fajne wieści","body":"Utworzyliśmy niesamowitą subskrypcję Chrome"), "_id" :319)

Przypuszczam, że nie ma sensu wyjaśniać, co jest w tym jsonie, i tak wszystko jest jasne.

W teorii nasza strona, a właściwie jej frontend, jest już prawie całkowicie gotowa. Jedyne, co pozostało do zrobienia, to nauczyć się informować Google, że mamy nowe aktualizacje, aby z kolei informowały o tym przeglądarki naszych subskrybentów. I oczywiście dynamicznie aktualizuj nasze najnowszy.json. Jednak to w następnej części.

PS Przy okazji, możesz teraz wywołać SendPushMe() i zobaczyć, co się stanie. Aby to zrobić, możesz na przykład utworzyć link, po kliknięciu którego ta metoda zostanie wywołana i wywołana:

Zadzwoń WyślijPushMe

A jeśli wszystko zostanie zrobione poprawnie, po kliknięciu takiego linku pojawi się okno systemowe z prośbą:

Ale nie spiesz się jeszcze z pozwoleniem. Kliknij krzyżyk i na razie zamknij okno.

Jeśli już kliknąłeś, otwórz ustawienia witryny (klikając zieloną kłódkę na pasku adresu, jeśli ktoś nie wie) i w elemencie „Alerty”, przywróć domyślne ustawienie Globalne („Zapytaj”).

Teraz otwórz konsolę programisty F12 -> Konsola. Następnie ponownie kliknij link „Zadzwoń do SendPushMe”.

Konsola powinna pokazywać dwa kolejne wiersze zawierające „ Service Worker jest obsługiwany" oraz " Service Worker jest gotowy odpowiednio. A sama przeglądarka musi ponownie poprosić o pozwolenie. A teraz możesz wyrazić zgodę.

W rezultacie w konsoli programisty powinny pojawić się trzy takie wpisy:

Dziennik subskrypcji Push Przeglądarka Chrome

Jeśli pamiętasz, scenariusz push.js wysyła żądanie GET. Jest to punkt końcowy, który jest przekazywany do serwera z tym żądaniem. Nieco później nauczymy witrynę ich zapamiętywania, abyśmy mogli wysyłać pushy przy użyciu tych identyfikatorów.

Co mamy teraz? Mamy pełnoprawnego subskrybenta powiadomień ze strony i teraz możemy wyizolować identyfikatory subskrybentów. Teraz sam Bóg powiedział mi, żebym spróbowała wysłać sobie powiadomienie.

Aby to zrobić, musisz poinformować Google o nowym powiadomieniu, a on z kolei poinformuje o tym naszych subskrybentów (lub jednego, jak mamy teraz).

Google otrzymuje powiadomienie specjalnym żądaniem POST, aby https://gcm-http.googleapis.com/gcm/send tutaj w tej formie:

Content-Type:application/json Authorization:key=A...A //Klucz prywatny naszej aplikacji, który otrzymaliśmy w ostatniej części. ( "to" : "bk3RNwTe3H0:CI2k_...", // Unikalny identyfikator subskrybenta. "data" : ( "title": "Portugalia kontra Dania", // Dane powiadomienia "text": "5 do 1" ) , )

Jak można się domyślić, żądanie to powiadamia jednego konkretnego subskrybenta, a dane do powiadomienia są przekazywane bezpośrednio w żądaniu. Jednak nasza treść powiadomienia pochodzi z najnowszego.json. Tak, a wysyłanie osobistej prośby do każdego subskrybenta jest zbyt odważne. Jeśli jednak potrzebujesz wysyłać indywidualne i osobiste powiadomienia, ta opcja jest właśnie dla Ciebie. Żądania będziemy jednak wysyłać partiami, dla których stosujemy następujący schemat:

Content-Type:application/json Authorization:key=A...A //Klucz prywatny naszej aplikacji, który otrzymaliśmy w ostatniej części. ( "registration_ids" : ( [...] // Tablica identyfikatorów subskrybentów. ), )

W takim przypadku, ponieważ żądanie nie zawiera danych do samego powiadomienia, przeglądarka skontaktuje się z Service Workerem, od którego otrzyma informacje.

Utwórzmy i wyślijmy żądanie przez terminal (konsola SSH):

kędzior--header "Autoryzacja: klucz=AI...3A" \ --header Content-Type:"application/json" \ https://gcm-http.googleapis.com/gcm/send \ -d "(\" registration_ids\":[\"cym...W3\"])"

Konsola SSH z wysłanym żądaniem POST i wynikowym Push

Ten zrzut ekranu pokazuje zarówno samo żądanie, jak i jego wynik — powiadomienie, które nadeszło sekundę później.

Tak, zrobiliśmy to – najważniejsza i, jak się wydaje, niejasna część z tyłu. Dalsza praca w tym kierunku będzie zależeć od tego, na czym jest napisana Twoja witryna. A jeśli Twoja strona jest napisana w Railsach, to wciąż jesteśmy w drodze. Jeśli nie, to nie spiesz się z pożegnaniem: w kolejnej końcowej części powrócę do tych pytań na temat powiadomień internetowych, których rozwiązanie przyda się web developerom dowolnej specjalizacji.

Powiadomienia push Chrome dla witryny Ruby On Rails

Po pierwsze, powiem, że ten przykład kodu jest poprawny dla strony Rails 3.2.8!

Zasadniczo musimy zrobić:

  1. Funkcjonalność, dzięki której nasza strona zapamiętuje identyfikatory subskrybentów;
  2. Model tworzenia powiadomień push;
  3. Dynamicznie aktualizowany najnowszy.json;
  4. Cóż, dodaj kilka wierszy kodu do kontrolera, który wyśle ​​żądanie POST do serwera Google podczas tworzenia nowego Push.

Jeśli zapomniałeś, przypomnę, że w pierwszej części od razu dodaliśmy do push.js linia do utworzenia żądania GET do naszej witryny, która przesyła identyfikator przeglądarki każdej nowo podpisanej osoby.

Teraz upewnijmy się, że nasza strona rozumie, co to za żądanie i zapisuje dane. Przede wszystkim stwórzmy model i kontroler dla pushsubscriber:

Rails model g pushsubscriber browserkey:ciąg prowizja db:migracja rails g kontroler pushsubscribers utwórz usuń

Dopasuj "/createpushadresat" do: "pushsubscribers#create", przez: : Dostawać

Teraz nasza strona przekazuje przychodzące żądania GET do kontrolera subskrybenci push , gdzie zostanie przetworzony metodą Stwórz . Ustawmy to:

definitywnie Stwórz@newsubscriber = Pushsubscriber.new(:browserkey => URI(params[:adresat].to_s).path.split("/").last) jeśli@nowysubskrybent.zapisać? render:tekst => "dobrze" w przeciwnym razie render:tekst => "niepowodzenie" koniec koniec

Muszę od razu powiedzieć, że ten kod ma tylko pokazać, w jakim kierunku trzeba się rozwijać. Prawie nic nie sprawdza i nie używa ani walidatorów, ani wyrażeń regularnych - nie używaj tego w ten sposób. Sprawdza jedynie, czy parametr wejściowy zawiera dane w postaci linku, a następnie ostatnia sekcja po ukośniku jest wyizolowana z tego linku i zapisana w bazie danych. Jest w tej formie push.js transmituje punkt końcowy. I to w ostatniej sekcji (po ukośniku) punktu końcowego zawarty jest identyfikator przeglądarki.

Tak więc ludzie zaczęli subskrybować nasze aktualizacje, a teraz nasza Baza danych jest uzupełniana identyfikatorami. Czas zacząć wysyłać im powiadomienia:

Rails g scaffold notyfikacja tytuł:ciąg tekst główny:ciąg url:ciąg succescount:liczba całkowita rake db:migrate

To polecenie Scaffold stworzy dla nas minimalnie działający model powiadomienie z polami tytuł,tekst podstawowy,adres URL oraz liczba sukcesów. Pierwsze trzy  — odpowiednio tytuł, tekst i link przyszłego alertu oraz liczba sukcesów- Liczba pomyślnie przesłanych pushów, o których Google uprzejmie nas poinformuje. Zostanie również utworzony kontroler z widokami dla tego modelu. Oczywiście nadal będziesz musiał wprowadzić wygenerowane widoki do ogólnego projektu witryny i „zamknąć” kontroler filtr przed_filtrem’ami, aby tylko osoby z odpowiednim dostępem mogły „pchać”. Ale to od Ciebie zależy indywidualnie. A teraz jesteśmy tylko trochę (właściwie wcale nie dużo) napraw metodę tworzenia w kontroler_powiadomień.rb:

wymagać"otwarty-uri" wymagać„multi_json” wymagać"ur" definitywnie Stwórz@notification = Notification.new(params[:notification]) jeśli@notification.save @adresats = Pushsubscriber.all.collect(&:browserkey) @keys = "("registration_ids":" [e-mail chroniony] _json+")".as_json uri = URI.parse("https://android.googleapis.com/gcm/send") http = Net::HTTP.new(uri.host,uri.port) http.use_ssl = true req = Net::HTTP::Post.new(uri.path) req["Autoryzacja"] = "klucz = A...A" # Wprowadź tutaj klucz prywatny req["Content-Type"] = "aplikacja/json " res = http.request(req, @keys) parsed_json = ActiveSupport::JSON.decode(res.body) @notification.update_attribute(:success, parsed_json["success"].to_i) koniec przekierowanie do ścieżki_powiadomień koniec

Ten kod, jeśli zostanie utworzone i zapisane nowe powiadomienie (@notification), generuje i wysyła żądanie POST do Google (dokładnie tak jak to zrobiliśmy powyżej), w którym WSZYSTKIE nasze identyfikatory subskrybentów są przesyłane w formacie json zgodnie ze specyfikacją Google. Następnie Google powinien odpowiedzieć nam swoim jsonem. Z którego jest parsowana sekcja sukcesu, z której przechowywana jest liczba  - liczba pomyślnie przesłanych wypchnięć. Przekazywana jest tam również sekcja awarii, w której odpowiednio przechowywana jest liczba niedostarczonych wypchnięć z tego czy innego powodu. Ogólnie możesz sam zobaczyć, jakie dane przesyła Google, może zdecydujesz się zapisać coś innego.

I tak jak ostatnim razem podany kod nie bierze pod uwagę, że Google może nie odpowiedzieć lub odpowiedzieć komunikatem o błędzie i nieprawidłowym json do analizy. Rozważ takie przypadki w swoim rozwoju.

Cóż, teraz próbujemy stworzyć push na naszej stronie za pomocą formularza Notification.new (stworzonego przez Scaffold) i… Voilà! System działa - otrzymaliśmy powiadomienie!

Prawdziwa treść tego powiadomienia jest nadal pobierana ze statycznego najnowszy.json. Ostatnią rzeczą, jaka pozostała, jest wymuszenie dynamicznej aktualizacji tego pliku. Jak to zrobić? Bardzo proste, bo mamy już model Powiadomienia, a w najnowszy.json powinien zawierać dokładnie nasze ostatnie powiadomienie (czyli Notification.all.last). Aby to zrobić, usuwamy nasz statyczny najnowszy.json z folderu głównego witryny i dodajemy go do trasy.rb następująca trasa:

Dopasuj "/latest.json", do: "notification#latestpush", przez: :get

To jest teraz najnowszy.json zostanie wygenerowany przez metodę najnowszeprzycisk w kontrolerze powiadomienie. Stwórzmy tę metodę:

Def Latestpush @push = Pushnotification.all.last render json: "("notification":("url":"" [e-mail chroniony] _s+"","tytuł":"" [e-mail chroniony] _s+"","body":"" [e-mail chroniony] _s+""),"_id":" [e-mail chroniony] _s+")". as_json koniec

Teraz utwórzmy kolejne powiadomienie poprzez formularz Notification.new. I wreszcie widzimy pchnięcie w rogu monitora z dokładnie tą treścią, która właśnie została wprowadzona do formularza.

Wydawałoby się, że to wszystko? Wszystko, ale nie do końca. Po pierwsze, zasubskrybowaliśmy, ale nie zrezygnowaliśmy z subskrypcji – bądź szczery i daj odwiedzającym tę możliwość tę możliwość. Po drugie, zrobiliśmy subskrypcję, ale nadal nie ma ona charakteru informacyjnego i jest pokazywana wszystkim, a nie tylko Użytkownicy Chrome, na które składana jest subskrypcja. I po trzecie, stworzyliśmy na naszej stronie bardzo ciekawą zabawkę, która posiada własne zasady użytkowania. To wszystko, o czym porozmawiamy w następnej, trzeciej i wreszcie ostatniej części naszej historii Chrome Push API.