azure notification hub y xamarin
TRANSCRIPT
Notificaciones Push:Xamarin Y Azure
Yeray JuliánFounder & Tech Leader @ DevsDNA
[email protected]@josueyeray@devsdna
Notificaciones, ¿cómo funcionan?
Básicamente:• Obtenemos un token de App + Device• Registramos ese token en nuestro servidor• Nuestro servidor llama al servidor push con el
token• El dispositivo recibe la notificación!
Notificaciones, ¿cómo funcionan?
En la práctica:• Controlar en servidor tres tipos de servicios:• APNS (Apple Push Notification Service)• GCM (Google Cloud Messaging)• WNS (Windows Notification Service)
• Somos “vulnerables” ante cambios en los servicios
• La configuración necesaria para cada servicio es muy diferente.
Notificaciones, ¿cómo funcionan?
APNS:• Necesitamos firmar las peticiones con el
mismo certificado que la app.GSM:• Tenemos que configurar la clave de API GCMWNS:• SID de paquete y client secret
De otros servicios, ya ni hablamos…
Notificaciones, ¿cómo funcionan?
Los envíos desde el backend se hacen mediante peticiones HTTP
Tenemos que controlar las distintas URLs, formatos de payload, metadatos, cabeceras, respuestas, códigos de error…
Notificaciones, ¿cómo funcionan?
¿Y si pudiesemos unificar todas las plataformas bajo una sola api?
Notificaciones:Y Azure
API común en servidor, sin usar HTTP.
Abstracción de los detalles de cada plataforma.
API común para todos los clientes, sobre la API de cada servicio.
Escalabilidad.
¿Qué nos aporta Notification Hub?
Vamos a ver como configurar Notification HubTres pasos:• Crear un nuevo Hub• Configurar los datos de nuestra app• Probar las notificaciones!
Configurando Notification Hub
Generamos los certificados de distribución APS.
Tenemos que escribir el código de plataforma que se encarga de registrar el terminal para notificaciones.
Instalamos el componente Azure Messaging.
Cuando tengamos un Token de registro, lo enviamos a Notification Hub
Conectando Xamarin.iOS
Registramos nuestra app en Google Dev Console.
Tenemos que escribir el código de plataforma que se encarga de registrar el terminal para notificaciones.
Instalamos el componente Google Cloud Messaging y Azure Messaging.
Cuando tengamos un Token de registro, lo enviamos a Notification Hub
Conectando Xamarin.Android
Registramos nuestra app en el Dev Center
Tenemos que escribir el código de plataforma que se encarga de registrar el terminal para notificaciones.
Instalamos el paquete NuGet de Azure.Messaging
Cuando tengamos un Token de registro, lo enviamos a Notification Hub
Conectando Windows UWP
Aun con pequeños cambios, el código es muy standard:
Enviando el registro a AzureNotificationHub notificationHub = new NotificationHub("hubname", "endpoint");await notificationHub.UnregisterAllAsync(result.Uri);await notificationHub.RegisterAsync(new Registration(result.Uri, new List<string>() { "" }));
notificationHub = new SBNotificationHub("endpoint", "hubname");notificationHub.UnregisterAllAsync(deviceToken, (error) =>{
Console.WriteLine($"Error calling Unregister: {error}");});NSSet tags = new NSSet("");notificationHub.RegisterNativeAsync(deviceToken, tags, (error) =>{
Console.WriteLine($"RegisterNativeAsync error: {error}");});
notificationHub = new NotificationHub("hubname", "endpoint", context);notificationHub.UnregisterAll(this.RegistrationId);List<string> TAGS = new List<string>();TAGS.Add("");notificationHub.Register(this.RegistrationId, TAGS.ToArray());
Vamos a ver como registrar nuestras apps en Notification Hub y enviar notificaciones a distintos sistemas.
Apps cliente
Muchas gracias por asistir.
¿preguntas?Yeray JuliánFounder & Tech Leader @ DevsDNA
[email protected]@josueyeray@devsdna