ACTUALIZACIÓN: La trama se espesa. Cambié el nombre de mi canal y de repente funciona (lo que significa que no fue un problema con mi servicio de inserción, ya que recibo la misma respuesta HTTP del servidor de notificaciones automáticas de Microsoft).Notificaciones de Windows Phone 7 Push que no aparecen en mi teléfono
Para mí, sin embargo, esto no es una solución. ¿Cómo podré probar esto y SABER que mis usuarios reciben sus notificaciones automáticas si obtengo la misma respuesta cuando no funciona como cuando lo hago?
[post original]
que he estado tratando de empujar las notificaciones enviadas al dispositivo Windows Phone 7, pero estoy teniendo problemas muy grandes que no puedo encontrar ninguna respuesta para. Comenzaré con el código C#.
Configuro notificaciones automáticas utilizando el siguiente código C#.
private HttpNotificationChannel channel;
private static string PUSH_CHANNEL = "MySpecialPushChannel";
private Uri PushUri = null;
private bool IsPushRegistered = false;
public void StartPushSubscription()
{
try
{
channel = HttpNotificationChannel.Find(PUSH_CHANNEL);
}
catch
{}
if (channel != null)
{
PushUri = channel.ChannelUri;
if (!channel.IsShellTileBound)
channel.BindToShellTile();
}
else
{
channel = new HttpNotificationChannel(PUSH_CHANNEL);
channel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(channel_ChannelUriUpdated);
channel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(channel_HttpNotificationReceived);
channel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(channel_ErrorOccurred);
try
{
channel.Open();
channel.BindToShellTile();
}
catch (Exception err)
{
channel = null;
IsPushRegistered = false;
// Code to try again
}
}
}
void channel_ChannelUriUpdated(object sender, NotificationChannelUriEventArgs e)
{
PushUri = e.ChannelUri;
IsPushRegistered = true;
}
estoy siguiendo la misma estructura de empuje WP7:
- Encuentra la HttpNotificationChannel (o iniciar una nueva)
- Registro controlador de eventos para obtener la notificación de inserción uri volver
- abierto el canal
- Unir a la losa
- Manejar el canal Uri (que enviamos a nuestro servicio para esperar t él feliz día cuando enviamos la notificación de inserción
OK ... hasta ahora todo bien. Sin errores, obtengo mi Uri y lo envío a mi servicio. Apunto mi aplicación a la pantalla de inicio y mi servicio envía una solicitud de inserción al Uri (enviando solo el conteo para que obtenga un pequeño número de conteo de inserción en la esquina superior derecha). Yo vuelva un estado HTTP 200 con lo siguiente:
DeviceConnectionStatus => Conectado
NotificationStatus => Recibido
SubscriptionStatus => Activo
Y luego ... nada. No se muestra el estado de inserción en mi aplicación. Ahora lo probé en mi dispositivo, en el emulador, en otro dispositivo y con varios servidores, y el resultado siempre es el mismo. Parece que todo funciona, excepto por el hecho de que no funciona.
¿Cómo formatear las notificaciones que se envían? Me gustaría ver el XML que está usando y los encabezados. –
Estoy usando el sistema de notificaciones push de PHP WP7 aquí: http://phpwindowsphonepush.codeplex.com/ ¿Pero no es ese tipo de punto discutible? Quiero decir ... si recibo un mensaje de éxito del Microsoft Push Notification Server, ¿no significa eso que la solicitud de inserción fue exitosa? ¿O hay una versión de "usted hizo algo mal, pero vamos a darle un mensaje de éxito de todos modos" de la respuesta? – MatthiasS
No estoy familiarizado con PHP, pero eche un vistazo a la implementación de C# aquí: http://dotnet.dzone.com/articles/sending-tile-push Al menos cuando traté de pasar una imagen, si no se ajusta a la reglas (80 KB/15 segundos), el estado será Recibido pero la notificación fallará. –