Widzę powiadomienia push dla stron internetowych Facebooka w chrome tylko wtedy, gdy otwieram chrome. Wiem, że to powiadomienie jest wysyłane przez pracownika serwisu. Zastanawiam się, czy ta synchronizacja w tle jest włączona, nawet jeśli przeglądarka jest zamknięta lub tylko po uruchomieniu Chrome rozpoczyna się proces synchronizacji serwisowej z robotem i rozpoczyna wysyłanie powiadomień push.Czy pracownik obsługi działa na tle, nawet jeśli przeglądarka jest zamknięta?
Odpowiedz
Najpierw trzeba powiedzieć, że to zależy od platformy. Moje rozumienie chrome:
Na platformach komputerowych, takich jak Windows i Mac OS X, przeglądarka musi mieć uruchomiony proces w tle, aby pracownik serwisu mógł działać. W systemie Mac OS X jest to dość łatwe do wykrycia, ponieważ przeglądarka nie może mieć otwartych okien, ale przeglądarka nadal ma świecącą kropkę poniżej.
Na platformach mobilnych łatwiej jest nasłuchiwać zdarzeń i obsługiwać je w wydajny sposób, więc w takich przypadkach platforma może obudzić przeglądarkę, która będzie obsługiwać dowolne odpowiednie zdarzenia.
Powyższe odnosi się do każdego api pracownika serwisowego.
na pulpicie: Jeśli przeglądarka jest całkowicie zamknięte następnie pracownicy usług nie można uruchamiać i nie wyśle żadnych wydarzeń (tj żadnych pchać lub tło zsynchronizować terminy)
Na Telefon komórkowy: Zdarzenia nadal będą wysyłane (tzn. synchronizacja w tle uruchomi się, gdy urządzenie użytkownika przejdzie do trybu online, a naciśnięcie zostanie odebrane i spowoduje zdarzenie push).
"Moje rozumienie chromu", myślałem, że pracujesz dla google? Przy okazji cofasz certyfikat SSL –
Pracuję w Google i chociaż dobrze rozumiem, jak działa Chrome, jest to ciągle ewoluujący produkt i zmienia się niezwykle szybko. Dzięki, że wygląda jak mój skrypt letsencrypt spadł. –
@GauntFace Jeśli istnieje kropka pod chromem oznacza to, że nadal działa, więc zgodnie z moim rozumieniem pracownik serwisu może nadal wykonywać synchronizację w tle. Ale moje zapytanie dotyczy tego, czy Chrome jest całkowicie zamknięty, czy pracownik serwisowy może wykonywać synchronizację w tle? –
Nie sądzę, że pracownik serwisu będzie mógł działać, jeśli przeglądarka jest zamknięta. Ponieważ pracownik serwisu może wysyłać powiadomienia push dopiero po otwarciu przeglądarki. Jeśli działa w tle, może wysłać powiadomienie nawet po zamknięciu przeglądarki.
w dokumencie w3c (https: //w3c.gitub.io/ServiceWorker/# user-agent-shutdown) określa również, że agent użytkownika powinien przechowywać stan usługi serwisowej w przypadku zamknięcia. w moim przekonaniu oznacza to, że pracownik serwisu nie będzie działał na wypadek, gdyby agent użytkownika został zamknięty. – gosua
@gosua Czy chciałbyś wyjaśnić trochę i dać misterną odpowiedź. –
Nie mogłem znaleźć bardziej szczegółowych informacji niż te zdania w specyfikacji. "stan musi być przechowywany po tym, jak program użytkownika zostanie zamknięty" brzmi dla mnie tak, jakby pracownik serwisowy już nie istniał, jeśli agent użytkownika został pomyślnie zamknięty. – gosua
Nieco offtopic, ale można pisać rozszerzenie Chrome, gdzie background script może działać, jeśli Chrome może działać w tle (konfigurowalne w ustawieniach). Może również use GCM.
Chciałbym poznać domyślne zachowanie pracownika usługi. Czy zamknięcie chrome spowoduje uruchomienie pracownika serwisowego? –
Przetestowałem to iw chrome Service Worker działał, nawet jeśli chrome było zamknięte (ale działa w tle). Mogłem wysłać wiadomość, a pracownik z powodzeniem pokazał powiadomienie. –
Ale nigdy nie widziałem powiadomienia w chrome, gdy jest zamknięte. Po otwarciu mojego Chrome wszystkie powiadomienia push od różnych firm (a mianowicie Facebook, Google) rozpoczynają bombardowanie na moim ekranie. więc założyłem, że pracownik serwisu nie uruchamia się, gdy przeglądarka jest zamknięta. –
- 1. Przechowuj ciasteczko, nawet jeśli sesja jest zamknięta
- 2. Pracownik w tle sprawdza, czy jest północ?
- 3. Rozszerzenie Chrome, które działa, nawet jeśli Chrome jest zamknięty
- 4. pomocą instrukcji na tle pracownik
- 5. Jak utrzymać swoją usługę aplikacji, nawet jeśli aplikacja jest zamknięta z menedżera zadań w telefonie MI
- 6. Szuflada nawigacji zostanie zamknięta, nawet jeśli nadpisano onBackPressed()
- 7. Przeglądarka źródłowa nie działa, jeśli wymaga podkreślenia
- 8. Pracownik w tle i wywóz śmieci?
- 9. wylogować się z przeglądarki, jeśli przeglądarka zostanie zamknięta w asp .net?
- 10. Sesyjne pliki cookie nie wygasają Gdy przeglądarka Chrome jest zamknięta na smartfonach
- 11. Działający pracownik lateed_job na Heroku?
- 12. Czy aplikacja phonegap działa w tle?
- 13. Jak obudzić się programowo, jeśli pokrywa jest zamknięta?
- 14. Czy pg_free_result() jest konieczne, nawet jeśli wynik wykracza poza zakres?
- 15. Sprawdź, czy przeglądarka jest zajęta
- 16. React Native: czy istnieje funkcja zwrotna, gdy aplikacja jest zamknięta?
- 17. "Sesja jest zamknięta!" - NHibernate
- 18. Jak utworzyć zrzut główny, nawet jeśli proces normalnie działa?
- 19. Jeśli używam już Modernizatora, czy będę potrzebował nawet Shiftu HTML5?
- 20. Backbone model.destroy() wywołujący funkcję wywołania błędu, nawet jeśli działa poprawnie?
- 21. Android zezwolenie nie działa nawet jeśli deklarują, że
- 22. Przeglądarka zawiesza się, nawet jeśli nie ustawiono żadnego punktu przerwania w XDebug/PHPStorm
- 23. Dlaczego klasa StringBuilder jest zamknięta?
- 24. jQuery mousemove() jest wywoływana, nawet jeśli mysz nadal jest
- 25. Jak sprawdzić, czy końcówka balonu w zasobniku systemowym jest zamknięta?
- 26. wykrywa, kiedy aplikacja jest zamknięta
- 27. Jak sprawdzić, czy pokrywa komputera Macbook jest zamknięta przez terminal?
- 28. Czy metoda C# jest domyślnie zamknięta lub wirtualna?
- 29. TextToSpeech.setEngineByPackageName() zwraca sukces, nawet jeśli pakiet nie jest dostępny
- 30. URLForUbiquityContainerIdentifier zwraca zero, nawet jeśli jest skonfigurowany poprawnie
Tak, to, czym są dla –
@ Jonasw Jak przejść do stanu nieaktywnego? –
http://stackoverflow.com/questions/39034950/google-chrome-push-notifications-not-working-if-the-browser-is-closed –