Kritische Warnungen in Xamarin.iOS
Mit iOS 12 können Apps kritische Warnungen senden. Kritische Warnungen geben einen Ton ab, unabhängig davon, ob Nicht stören aktiviert oder der Klingelschalter deaktiviert ist. Diese Benachrichtigungen sind störend und sollten nur verwendet werden, wenn Benutzer sofortige Maßnahmen ergreifen müssen.
Berechtigung für benutzerdefinierte kritische Warnungen
Um kritische Warnungen in Ihrer App anzuzeigen, fordern Sie zuerst eine benutzerdefinierte Berechtigung für kritische Warnungsbenachrichtigungen von Apple an.
Nachdem Sie diese Berechtigung von Apple erhalten und alle zugehörigen Anweisungen zum Konfigurieren Ihrer App für ihre Verwendung befolgt haben, fügen Sie die benutzerdefinierte Berechtigung zur Datei Entitlements.plist Ihrer App hinzu. Konfigurieren Sie dann ihre iOS Bundle-Signaturoptionen für die Verwendung von Entitlements.plist beim Signieren der App sowohl auf dem Simulator als auch auf dem Gerät.
Autorisierung anfordern
Die Benachrichtigungsautorisierungsanforderung einer App fordert den Benutzer auf, die Benachrichtigungen einer App zuzulassen oder zu verweigern. Wenn die Benachrichtigungsautorisierungsanforderung um die Berechtigung zum Senden kritischer Warnungen fragt, gibt die App dem Benutzer auch die Möglichkeit, sich für kritische Warnungen zu entscheiden.
Der folgende Code fordert die Berechtigung an, sowohl kritische Warnungen als auch Standardbenachrichtigungen und Sounds zu senden, indem die entsprechenden übergeben werden.UNAuthorizationOptions
Werte für 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;
}
Lokale kritische Warnungen
Um eine lokale kritische Warnung zu senden, erstellen Sie eineUNMutableNotificationContent
und legen Sie die Sound
-Eigenschaft auf eine der folgenden Eigenschaften fest:
UNNotificationSound.DefaultCriticalSound
, der den standardmäßigen Sound für kritische Benachrichtigungen verwendet.UNNotificationSound.GetCriticalSound
, mit dem Sie einen benutzerdefinierten Sound angeben können, der mit Ihrer App und einem Volume gebündelt ist.
Erstellen Sie dann eine UNNotificationRequest
aus dem Benachrichtigungsinhalt, und fügen Sie es dem Notification Center hinzu:
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);
Wichtig
Kritische Warnungen werden nicht übermittelt, wenn sie für Ihre App nicht aktiviert sind. Zusammen mit der Eingabeaufforderung, die angezeigt wird, wenn eine App zum ersten Mal die Berechtigung zum Senden kritischer Warnungen anfordert, kann ein Benutzer kritische Warnungen auch im Abschnitt Benachrichtigungen Ihrer App der iOS-Einstellungs-App aktivieren oder deaktivieren.
Kritische Remotewarnungen
Informationen zu wichtigen Remotewarnungen finden Sie in der Sitzung Neuerungen in Benutzerbenachrichtigungen von WWDC 2018 und im Dokument Generieren einer Remotebenachrichtigung .