Windows Phone开发学习指南

移动开发
Windows Phone开发的过程你是否了解,这里和大家分享一下,PushNotification是windowsphone7中的特色功能之一,这个功能可以变相的让普通开发者实现多任务。

本文和大家一起学习一下Windows Phone开发的概念,PushNotification是windowsphone7中的特色功能之一,它为手机端应用和webservice之间建立了一条专用的、持久的、稳定的通道来推送通知。当通道建立后,手机端应用可以接收webservice的任何信息。

一起学Windows Phone开发

一.简介

PushNotification是windowsphone7中的特色功能之一,这个功能可以变相的让普通开发者实现多任务(尽管并不是真正的多任务)。它为手机端应用和webservice之间建立了一条专用的、持久的、稳定的通道来推送通知。当通道建立后,手机端应用可以接收webservice的任何信息。

 

二.分类

对于PushNotification主要有三种:

1.TileNotification:

是可以改变QuickLanucharea内的图标内容(图片,文字等)的方式。不过这个需要把程序pintostart,才可以使用。

2.ToastNotification:

是在屏幕上面可以显示一个提示栏的方式。当点击提示栏可以打开应用程序。

3.RawNotification:

是直接使用Http方式来接收(httppolling)通知的方式。并且是不可见的,以后台方式传送通知。

对于以上几种通知,都需要一个服务端以pushnotification方式来发送通知,也就是说要使用pushnotification都需要一个服务端。

三.Windows Phone开发中创建服务器端

对于服务器端来说,发送不同的通知,都是以Http方式发出去的,但是在发送时,需要配置相应的参数,来告诉PushNotificationService所发送的类型是什么。

HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(channelUri);

request.Method=WebRequestMethods.Http.Post;

request.ContentType="text/xml;charset=utf-8";

request.ContentLength=notificationmessage.Length;

request.Headers["X-MessageID"]=Guid.NewGuid().ToString();


1.Toastnotification:

request.Headers["X-WindowsPhone-Target"]="toast";

request.Headers[X-NotificationClass]


Message:

  1. "Content-Type:text/xml\r\nX-WindowsPhone-Target:token\r\n\r\n"  
  2.  
  3. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  4.  
  5. <wp:Notificationxmlns:wpwp:Notificationxmlns:wp="WPNotification"> 
  6.  
  7. <wp:Tile> 
  8.  
  9. <wp:BackgroundImage> 
  10.  
  11. <backgroundimagepath> 
  12.  
  13. </wp:BackgroundImage> 
  14.  
  15. <wp:Count> 
  16.  
  17. <count> 
  18.  
  19. </wp:Count> 
  20.  
  21. <wp:Title> 
  22.  
  23. <title> 
  24.  
  25. </wp:Title> 
  26.  
  27. </wp:Tile> 
  28.  
  29. </wp:Notification> 
  30.  

 


2.Tokennotification:

request.Headers["X-WindowsPhone-Target"]="token";

request.Headers[X-NotificationClass]

Message:

  1. “Content-Type:text/xml\r\nX-WindowsPhone-Target:toast\r\n\r\n”  
  2.  
  3. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  4.  
  5. <wp:Notificationxmlns:wpwp:Notificationxmlns:wp="WPNotification"> 
  6.  
  7. <wp:Toast> 
  8.  
  9. <wp:Text1> 
  10.  
  11. <string> 
  12.  
  13. </wp:Text1> 
  14.  
  15. <wp:Text2> 
  16.  
  17. <string> 
  18.  
  19. </wp:Text2> 
  20.  
  21. </wp:Toast> 
  22.  
  23. </wp:Notification> 
  24.  

 

3.rawnotification

request.Headers[X-NotificationClass]

 

request.BeginGetRequestStream();

StreamrequestStream=request.EndGetRequestStream();

requestStream.BeginWrite(message);


Response数据

response.StatusCode//Ok表示成功,否则可以查下面相应的错误码表,同时也可以查表得到当前状态

response.Headers[X-MessageID]

response.Headers[X-DeviceConnectionStatus]

response.Headers[X-SubscriptionStatus]

response.Headers[X-NotificationStatus

 

 

 


四.Windows Phone开发中创建客户端

HttpNotificationChannelhttpChannel=HttpNotificationChannel.Find(ChannelName);

httpChannel.Open();

//绑定notification

httpChannel.BindToShellToast();

httpChannel.BindToShellTile(uris);

 

//获取notificationchannelURI

httpChannel.ChannelUriUpdated+=newEventHandler<NotificationChannelUriEventArgs>(httpChannel_ChannelUriUpdated);

//获取Rawnotification

httpChannel.HttpNotificationReceived+=newEventHandler<HttpNotificationEventArgs>(httpChannel_HttpNotificationReceived);

//获取Toastnotification

httpChannel.ShellToastNotificationReceived+=newEventHandler<NotificationEventArgs>(httpChannel_ShellToastNotificationReceived);

//获取Pushnotificationerrormessage

httpChannel.ErrorOccurred+=newEventHandler<NotificationChannelErrorEventArgs>(httpChannel_ExceptionOccurred);

对于Tilenotification是由系统来接收的,所以这里没有相应的Event.

以上就是pushnotification的一些基本步骤,具体的实例在WP7TrainningKit里有。

 

责任编辑:佚名 来源: cnblogs.com
相关推荐

2010-07-15 15:39:51

Perl线程

2014-08-26 10:01:18

Windows Pho平台开发指南

2010-07-21 11:04:44

Perl学习指南

2009-11-11 14:32:33

路由协议介绍

2010-07-29 09:31:28

Flex编程模型

2011-08-17 14:07:43

IOS开发Quartz 2D

2010-07-16 10:44:54

Perl数组

2011-08-23 10:29:13

LuaPlayer

2009-09-17 09:01:10

CCNA学习指南CCNA

2010-04-21 17:07:54

Windows Pho

2013-07-30 12:37:56

Windows PhoWindows Pho

2013-07-30 11:18:37

Windows PhoWindows Pho

2013-04-19 16:34:56

Windows PhoWindows Pho

2013-04-16 17:02:50

Windows Pho概论

2013-04-17 14:00:06

Windows PhoWindows Pho

2011-06-07 12:42:15

Windows Pho

2010-06-11 14:21:53

2014-12-11 17:55:05

程序员

2010-04-08 17:40:23

Windows Pho

2012-05-23 15:46:39

数字罗盘
点赞
收藏

51CTO技术栈公众号