Avvisi critici in Xamarin.iOS
Con iOS 12, le app possono inviare avvisi critici. Gli avvisi critici riproducino un suono indipendentemente dal fatto che non sia abilitato o meno l'interruttore del ringer. Queste notifiche sono di disturbo e devono essere usate solo quando gli utenti devono intervenire immediatamente.
Diritto di avviso critico personalizzato
Per visualizzare gli avvisi critici nell'app, richiedere prima di tutto un diritto per le notifiche di avviso critiche personalizzate da Apple.
Dopo aver ricevuto questo diritto da Apple e seguendo le istruzioni associate su come configurare l'app per usarla, aggiungere il diritto personalizzato ai file Entitlements.plist dell'app. Configurare quindi le opzioni di firma del bundle iOS per usare Entitlements.plist durante la firma dell'app sia nel simulatore che nel dispositivo.
Richiedere l'autorizzazione
La richiesta di autorizzazione di notifica di un'app richiede all'utente di consentire o impedire le notifiche di un'app. Se la richiesta di autorizzazione di notifica richiede l'autorizzazione per l'invio di avvisi critici, l'app offrirà anche all'utente la possibilità di acconsentire esplicitamente agli avvisi critici.
Il codice seguente richiede l'autorizzazione per inviare avvisi critici e notifiche standard e suoni passando il appropriato UNAuthorizationOptions
valori in 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;
}
Avvisi critici locali
Per inviare un avviso critico locale, creare un UNMutableNotificationContent
e impostarne la Sound
proprietà su:
UNNotificationSound.DefaultCriticalSound
, che usa il suono di notifica critico predefinito.UNNotificationSound.GetCriticalSound
, che consente di specificare un suono personalizzato in bundle con l'app e un volume.
Creare quindi un oggetto UNNotificationRequest
dal contenuto della notifica e aggiungerlo al Centro notifiche:
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);
Importante
Gli avvisi critici non verranno recapitati se non sono abilitati per l'app. Insieme al prompt visualizzato la prima volta che un'app richiede l'autorizzazione per inviare avvisi critici, un utente può anche abilitare o disabilitare gli avvisi critici nella sezione Notifiche dell'app dell'app Impostazioni iOS.
Avvisi critici remoti
Per informazioni sugli avvisi critici remoti, vedere la sessione Novità delle notifiche utente da WWDC 2018 e il documento Generazione di una notifica remota.