porta microsoft management azure push-notification xamarin azure-mobile-services azure-notificationhub

microsoft - porta azure



Notificaciones de Azure a WP e iOS (1)

Mi aplicación utiliza un concentrador de notificaciones de Azure para enviar mensajes a dispositivos con Windows Phone y iOS. El problema es que funcionan si se llama a uno, pero no funciona si se llaman ambos.

Por ejemplo, si envío un mensaje a un dispositivo iOS desde mi emulador de iOS, el siguiente código funciona bien y aparece la notificación.

var toast = PrepareMpnsToastPayload("myapp", notificationText); var appleToast = PrepareAppleToastPayload("myapp", notificationText); //await NotificationHelper.Instance.Hub.SendMpnsNativeNotificationAsync(toast, userTag); await NotificationHelper.Instance.Hub.SendAppleNativeNotificationAsync(appleToast, userTag);

Sin embargo, si elimino el comentario de la línea SendMpns .. (), la notificación nunca llega al dispositivo Apple. Al recorrer este código con la depuración remota, la llamada a SendMpns .. () parece no regresar. Lo paso por alto y solo se reanuda ... y el punto de interrupción en la llamada SendApple .. () a continuación nunca se golpea.

Esto funciona igual con la línea de Windows Phone Mpns (funciona bien sin la llamada Apple).

¿Cómo se supone que debo enviar una alerta a un usuario cuando no sé en qué dispositivo se encuentran? Solo quiero enviar la notificación a todos los tipos. Cualquier puntero sería muy apreciado.

EDITAR: Las respuestas a continuación de eliminar await () funcionaron. Sin embargo, como ahora tengo un centro de notificaciones autenticado, necesito capturar el valor de retorno de la llamada para poder ver si necesito obtener otro token de autenticación si ha expirado.


Si el código publicado se ejecuta como una aplicación de consola trivial, entonces debemos esperar a que se completen las tareas. La forma más sencilla de hacerlo es eliminar await y llamar a Wait () contra el objeto Task devuelto por los métodos xAsync ():

NotificationHelper.Instance.Hub.SendMpnsNativeNotificationAsync(toast, userTag).Wait(); NotificationHelper.Instance.Hub.SendAppleNativeNotificationAsync(appleToast, userTag).Wait();