Alerty krytyczne w środowisku Xamarin.iOS
W systemie iOS 12 aplikacje mogą wysyłać alerty krytyczne. Alerty krytyczne odtwarzają dźwięk niezależnie od tego, czy opcja Nie przeszkadzać jest włączona, czy przełącznik dzwonka jest wyłączony. Te powiadomienia są destrukcyjne i powinny być używane tylko wtedy, gdy użytkownicy muszą podjąć natychmiastowe działania.
Niestandardowe uprawnienie alertu krytycznego
Aby wyświetlić alerty krytyczne w aplikacji, najpierw zażądaj uprawnień do niestandardowych powiadomień o krytycznym znaczeniu od firmy Apple.
Po otrzymaniu tego uprawnienia od firmy Apple i wykonaniu wszelkich skojarzonych instrukcji dotyczących sposobu konfigurowania aplikacji do jej używania dodaj uprawnienie niestandardowe do plików Entitlements.plist aplikacji. Następnie skonfiguruj opcje podpisywania pakietu systemu iOS, aby używać pliku Entitlements.plist podczas podpisywania aplikacji zarówno w symulatorze, jak i na urządzeniu.
Autoryzacja żądania
Żądanie autoryzacji powiadomień aplikacji monituje użytkownika o zezwolenie na powiadomienia aplikacji lub nie zezwala na nie. Jeśli żądanie autoryzacji powiadomień poprosi o uprawnienie do wysyłania alertów krytycznych, aplikacja da również użytkownikowi możliwość wyrażenia zgody na alerty krytyczne.
Poniższy kod żąda uprawnień do wysyłania alertów krytycznych oraz standardowych powiadomień i dźwięków, przekazując odpowiednie UNAuthorizationOptions
wartości do RequestAuthorization
:
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
UNUserNotificationCenter center = UNUserNotificationCenter.Current;
var options = UNAuthorizationOptions.Alert | UNAuthorizationOptions.Sound | UNAuthorizationOptions.CriticalAlert;
center.RequestAuthorization(options, (bool success, NSError error) => {
// ...
);
return true;
}
Alerty o krytycznym znaczeniu lokalnym
Aby wysłać alert krytyczny dla lokalnego, utwórz UNMutableNotificationContent
i ustaw jej Sound
właściwość na jedną z następujących wartości:
UNNotificationSound.DefaultCriticalSound
, który używa domyślnego dźwięku powiadomienia krytycznego.UNNotificationSound.GetCriticalSound
, który umożliwia określenie niestandardowego dźwięku, który jest powiązany z aplikacją i woluminem.
Następnie utwórz element UNNotificationRequest
na podstawie zawartości powiadomienia i dodaj go do centrum powiadomień:
var content = new UNMutableNotificationContent()
{
Title = "Critical alert title",
Body = "Text of the critical alert",
CategoryIdentifier = "my-critical-alert-category",
// Sound = UNNotificationSound.DefaultCriticalSound
Sound = UNNotificationSound.GetCriticalSound("my_critical_sound.m4a", 1.0f)
};
var request = UNNotificationRequest.FromIdentifier(
Guid.NewGuid().ToString(),
content,
UNTimeIntervalNotificationTrigger.CreateTrigger(3, false)
);
var center = UNUserNotificationCenter.Current;
center.AddNotificationRequest(request, null);
Ważne
Alerty krytyczne nie będą dostarczane, jeśli nie są włączone dla aplikacji. Wraz z monitem wyświetlanym po raz pierwszy aplikacja żąda uprawnień do wysyłania alertów krytycznych, użytkownik może również włączyć lub wyłączyć alerty krytyczne w sekcji Powiadomienia aplikacji w aplikacji Ustawienia aplikacji.
Alerty o krytycznym znaczeniu zdalnym
Aby uzyskać informacje o alertach o krytycznym znaczeniu zdalnym, zobacz sesję Co nowego w powiadomieniach użytkownika z usługi WWDC 2018 i dokument Generowanie powiadomienia zdalnego.