azure notification hub y xamarin

15
Notificaciones Push: Xamarin Y Azure Yeray Julián Founder & Tech Leader @ DevsDNA [email protected] @josueyeray @devsdna

Upload: josue-yeray-julian-ferreiro

Post on 06-Apr-2017

428 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Azure Notification Hub y Xamarin

Notificaciones Push:Xamarin Y Azure

Yeray JuliánFounder & Tech Leader @ DevsDNA

[email protected]@josueyeray@devsdna

Page 2: Azure Notification Hub y Xamarin

Notificaciones, ¿cómo funcionan?

Page 3: Azure Notification Hub y Xamarin

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?

Page 4: Azure Notification Hub y Xamarin

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?

Page 5: Azure Notification Hub y Xamarin

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?

Page 6: Azure Notification Hub y Xamarin

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?

Page 7: Azure Notification Hub y Xamarin

¿Y si pudiesemos unificar todas las plataformas bajo una sola api?

Notificaciones:Y Azure

Page 8: Azure Notification Hub y Xamarin

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?

Page 9: Azure Notification Hub y Xamarin

Vamos a ver como configurar Notification HubTres pasos:• Crear un nuevo Hub• Configurar los datos de nuestra app• Probar las notificaciones!

Configurando Notification Hub

Page 10: Azure Notification Hub y Xamarin

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

Page 11: Azure Notification Hub y Xamarin

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

Page 12: Azure Notification Hub y Xamarin

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

Page 13: Azure Notification Hub y Xamarin

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());

Page 14: Azure Notification Hub y Xamarin

Vamos a ver como registrar nuestras apps en Notification Hub y enviar notificaciones a distintos sistemas.

Apps cliente

Page 15: Azure Notification Hub y Xamarin

Muchas gracias por asistir.

¿preguntas?Yeray JuliánFounder & Tech Leader @ DevsDNA

[email protected]@josueyeray@devsdna