推送通知基础

时间:2012-06-28 09:29:04

标签: windows-phone-7 windows-phone-7.1

我正试图像http://dotnettrain.blogspot.co.uk/2011/07/push-notifications-in-windows-phone-75.html

那样实施

我在同一页面发送和接收。 A.xaml

我要发送的有效负载:在GetToastPayLoad

string message = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
     "<wp:Notification xmlns:wp=\"WPNotification\">" +
      "<wp:Toast>" +
       "<wp:Text1>New Link Request</wp:Text1>" +
       "<wp:Text2>"+data.Title+"</wp:Text2>" +
      "</wp:Toast>" +
     "</wp:Notification>";

httpRequest的标题是: -

  .........................................
   var request = (HttpWebRequest)WebRequest.Create(new Uri(channelUri));
                request.Method = "POST";
                request.ContentType = "text/xml";
                payload = GetToastPayload(data);
                request.Headers.Add("X-WindowsPhone-Target", "toast");
                request.Headers.Add("X-NotificationClass", "2");
                }

我能够将A.xaml中的响应捕获为OnToastNotificationReceived,并在消息框中打印详细信息。

但是当我删除事件处理程序时,我没有在正在运行的应用程序中收到任何通知。

如何以正常方式接收和显示正常的祝酒通知?

* 我应该怎么做才能实现这种通用性,比如说我想让它显示在用户所在的任何地方:A.xaml,B.xaml,C.xaml 等。?*

1 个答案:

答案 0 :(得分:1)

要在任何地方接收通知,请尝试将您的代码放入App() App.xaml.cs中的{{1}}构造函数中,如Sending toast notifications on Windows Phone 7

中所示

当您的应用运行时,不会显示Toast通知,因此您无法以这种方式显示它们(即使您尝试手动执行ToastPrompt)所以您应该使用ShellToastNotificationReceived来处理在这种情况下的通知。

当您的应用未运行时,您应该看到显示的吐司通知。