Priorytety powiadomień usługi WNS

Ustawiając priorytet powiadomienia z prostym nagłówkiem na komunikaty POST usługi WNS, można kontrolować sposób dostarczania powiadomień w sytuacjach wrażliwych na baterię.

Włącz system Windows

Ponieważ więcej użytkowników pracuje tylko na urządzeniach zasilanych baterią, minimalizacja zużycia energii stała się standardowym wymaganiem dla wszystkich aplikacji. Jeśli aplikacje zużywają więcej energii niż wartość, którą udostępniają, użytkownicy mogą odinstalować aplikacje. Podczas gdy system operacyjny Windows zmniejsza zużycie energii na baterii tam, gdzie to możliwe, jest to odpowiedzialność aplikacji za wydajną pracę.

Priorytety WNS to jeden ze sposobów przenoszenia pracy niekrytycznej z baterii. Priorytety usługi WNS informują system, które powiadomienia powinny być dostarczane natychmiast i które mogą czekać, aż urządzenie zostanie podłączone do źródła zasilania. Dzięki tym wskazówce system może dostarczać powiadomienia o dokładnym czasie, w jaki są one najcenniejsze zarówno dla użytkownika, jak i aplikacji.

Tryby zasilania na urządzeniu

Każde urządzenie z systemem Windows działa za pośrednictwem różnych trybów zasilania (baterii, oszczędzania baterii i ładowania), a użytkownicy oczekują różnych zachowań od aplikacji w różnych trybach zasilania. Gdy urządzenie jest włączone, wszystkie powiadomienia powinny być dostarczane. W trybie oszczędzania baterii należy dostarczyć tylko najważniejsze powiadomienia. Podczas gdy urządzenie jest podłączone, można wykonać operacje synchronizacji lub operacje niekrytyczne czasowo.

System Windows nie wie, które powiadomienia są ważne dla żadnego użytkownika lub aplikacji, więc system opiera się całkowicie na aplikacjach w celu ustawienia odpowiedniego priorytetu dla swoich powiadomień.

Priorities

Aplikacja ma do dyspozycji cztery priorytety, które można wykorzystać podczas wysyłania powiadomień push. Priorytet ustawia się dla indywidualnych powiadomień, co pozwala wybrać, które powiadomienia muszą być dostarczane natychmiast (na przykład wiadomość na czacie) i które mogą poczekać (na przykład aktualizacje zdjęć kontaktu).

Priorytety są następujące:

Priority Nadpisywanie użytkownika Description Example
High Tak — użytkownik może zablokować wszystkie powiadomienia z aplikacji LUB uniemożliwić ograniczanie przepustowości aplikacji w trybie oszczędzania baterii. Najważniejsze powiadomienia, które należy dostarczyć od razu w każdej sytuacji, gdy urządzenie może otrzymywać powiadomienia. Takie elementy jak wywołania VoIP lub alerty krytyczne, które powinny obudzić urządzenie, należą do tej kategorii. Połączenia VoIP, czasowo krytyczne alerty
Medium Tak — użytkownik może zablokować wszystkie powiadomienia z aplikacji LUB uniemożliwić ograniczanie przepustowości aplikacji w trybie oszczędzania baterii. Są to rzeczy, które nie są aż tak ważne, które nie muszą się zdarzyć od razu, ale użytkownicy będą zirytowani, jeśli nie będą działały w tle. Pomocnicza synchronizacja konta e-mail, aktualizacje kafelków na żywo.
Low Tak — użytkownik może zablokować wszystkie powiadomienia z aplikacji LUB uniemożliwić ograniczanie przepustowości aplikacji w trybie oszczędzania baterii. Powiadomienia, które mają sens tylko wtedy, gdy użytkownik korzysta z urządzenia lub gdy działanie w tle ma sens. Są one buforowane i nie są przetwarzane, dopóki użytkownik nie zaloguje się lub nie podłącza urządzenia. Stan kontaktu (online/offline)

Należy pamiętać, że wiele aplikacji będzie mieć powiadomienia o różnym priorytecie w całym cyklu życia. Ponieważ priorytet jest ustawiony dla poszczególnych powiadomień, nie jest to problem. Aplikacja VoIP może wysyłać powiadomienie o wysokim priorytecie dla połączenia przychodzącego, a następnie wysłać powiadomienie o niskim priorytecie, gdy kontakt pojawi się online.

Ustawianie priorytetu

Ustawienie priorytetu żądania powiadomienia odbywa się za pomocą dodatkowego nagłówka w żądaniu POST, X-WNS-PRIORITY. Jest to wartość całkowita z zakresu od 1 do 4, która jest mapowana na priorytet.

Nazwa priorytetu Wartość X-WNS-PRIORITY Wartość domyślna dla:
High 1 Toasts
Medium 2 Kafelki i odznaki
Low 3 Raw

Aby być zgodnym z poprzednimi wersjami, ustawienie priorytetu nie jest wymagane. W przypadku, gdy aplikacja nie ustawia priorytetu swoich powiadomień, system zapewni domyślny priorytet. Wartości domyślne są wyświetlane na powyższym wykresie i odpowiadają zachowaniu istniejących wersji systemu Windows.

Szczegółowa lista zachowań pulpitu

Jeśli dystrybuujesz aplikację na różne SKU systemu Windows, zwykle najlepiej jest kierować się wykresem w powyższej sekcji.

Poniżej wymieniono bardziej szczegółowe zalecane zachowania dla każdego priorytetu. Nie jest to gwarancja, że każde urządzenie będzie działać dokładnie zgodnie z wykresem. Producenci OEM mogą konfigurować zachowanie inaczej, ale większość z nich znajduje się blisko tego wykresu.

Stan urządzenia PRIORYTET: Wysoki PRIORYTET: Średni PRIORYTET: Niski PRIORYTET: Bardzo niski
Ekran włączony LUB podłączony Deliver Deliver Deliver Deliver
Wyłącz ekran I na baterii Deliver Jeśli użytkownik jest wykluczony: dostarcz W przeciwnym razie: użyj pamięci podręcznej Jeśli użytkownik jest wykluczony: dostarczyć W przeciwnym razie: cache * Cache
Włączono oszczędzanie baterii Jeśli użytkownik jest wykluczony: dostarcz W przeciwnym razie: użyj pamięci podręcznej Jeśli użytkownik jest wykluczony: dostarcz W przeciwnym razie: użyj pamięci podręcznej Jeśli użytkownik jest wykluczony: dostarcz W przeciwnym razie: użyj pamięci podręcznej Cache
Na baterii + oszczędzanie baterii włączone + ekran wyłączony Jeśli użytkownik jest wykluczony: dostarcz W przeciwnym razie: użyj pamięci podręcznej Jeśli użytkownik jest wykluczony: dostarcz W przeciwnym razie: użyj pamięci podręcznej Jeśli użytkownik jest wykluczony: dostarcz W przeciwnym razie: użyj pamięci podręcznej Cache

Należy pamiętać, że powiadomienia o niskim priorytcie będą domyślnie dostarczane w przypadku wyłączania ekranu i baterii tylko dla urządzeń z systemem Windows Phone. Jest to utrzymanie zgodności z istniejącą polityką MPNS. Należy również zauważyć, że czwarte i piąte wiersze są takie same, po prostu wywołując różne scenariusze.

Aby zwolnić aplikację w oszczędzaniu baterii, użytkownicy muszą przejść do obszaru "Użycie baterii według aplikacji" w obszarze Ustawienia i wybrać pozycję "Zezwalaj aplikacji na uruchamianie zadań w tle". Wybór tego użytkownika wyklucza aplikację z oszczędzania baterii w przypadku powiadomień o wysokim, średnim i niskim priorytcie. Możesz również wywołać interfejs API BackgroundExecutionManager , aby programowo poprosić o uprawnienie użytkownika.