Develop business apps cross-platform development using visual studio with xamarin and azure
Azure Notification Hub y Xamarin
-
Upload
josue-yeray-julian-ferreiro -
Category
Technology
-
view
429 -
download
1
Transcript of Azure Notification Hub y Xamarin
![Page 1: Azure Notification Hub y Xamarin](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/1.jpg)
Notificaciones Push:Xamarin Y Azure
Yeray JuliánFounder & Tech Leader @ DevsDNA
[email protected]@josueyeray@devsdna
![Page 2: Azure Notification Hub y Xamarin](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/2.jpg)
Notificaciones, ¿cómo funcionan?
![Page 3: Azure Notification Hub y Xamarin](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/3.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/4.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/5.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/6.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/7.jpg)
¿Y si pudiesemos unificar todas las plataformas bajo una sola api?
Notificaciones:Y Azure
![Page 8: Azure Notification Hub y Xamarin](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/8.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/9.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/10.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/11.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/12.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/13.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/14.jpg)
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](https://reader038.fdocuments.us/reader038/viewer/2022102623/58e5ffe41a28ab09478b60e1/html5/thumbnails/15.jpg)
Muchas gracias por asistir.
¿preguntas?Yeray JuliánFounder & Tech Leader @ DevsDNA
[email protected]@josueyeray@devsdna