Alertas críticas en Xamarin.iOS
Con iOS 12, las aplicaciones pueden enviar alertas críticas. Las alertas críticas reproducen un sonido, independientemente de si está activada la opción de no molestar o el interruptor del timbre está desactivado. Estas notificaciones son de cambio y solo se deben usar cuando los usuarios deben tomar medidas inmediatas.
Derechos personalizados de alertas críticas
Para mostrar alertas críticas en la aplicación, primero debe solicitar un derecho personalizado de notificaciones de alertas críticas a Apple.
Después de recibir este derecho de Apple y seguir las instrucciones asociadas sobre cómo configurar la aplicación para usarlo, agregue el derecho personalizado a los archivos Entitlements.plist de la aplicación. A continuación, configure las opciones de firma del conjunto de productos de iOS para usar Entitlements.plist al firmar la aplicación en el simulador y el dispositivo.
Solicitud de autorización
La solicitud de autorización de notificaciones de una aplicación solicita al usuario que permita o no permita las notificaciones de una aplicación. Si la solicitud de autorización de notificaciones solicita permiso para enviar alertas críticas, la aplicación también dará al usuario la oportunidad de participar en las alertas críticas.
El código siguiente solicita permiso para enviar alertas críticas, notificaciones estándar y sonidos pasando los valores adecuados de UNAuthorizationOptions
a 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;
}
Alertas críticas locales
Para enviar una alerta crítica local, cree un elemento UNMutableNotificationContent
y establezca su propiedad Sound
en:
UNNotificationSound.DefaultCriticalSound
, que usa el sonido predeterminado de notificación crítica.UNNotificationSound.GetCriticalSound
, que permite especificar un sonido personalizado que se agrupa con la aplicación y un volumen.
A continuación, cree un elemento UNNotificationRequest
a partir del contenido de la notificación y agréguelo al centro de notificaciones:
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
Las alertas críticas no se entregarán si no están habilitadas para la aplicación. Junto con la solicitud que aparece la primera vez que una aplicación solicita permiso para enviar alertas críticas, un usuario también puede habilitar o deshabilitar las alertas críticas en la sección Notificaciones de la aplicación Ajustes de iOS.
Alertas críticas remotas
Para obtener información sobre las alertas críticas remotas, consulte la sesión Novedades de las notificaciones de usuario del WWDC 2018 y el documento Generación de una notificación remota.