且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Windows Phone 7 推送通知(Push Notification)

更新时间:2022-10-03 13:48:27

使用推送通知的好处

1、节省用户的电池电量。

2、你可以通过推送通知来告知你的用户在程序中发生了一些有趣的事,即使程序没有运行。

 

推送通知的过程

Windows Phone 7 推送通知(Push Notification)


用户在手机中首次运行程序时,应用程序会调用微软的推送通知服务,请求一个用于通信的定制URI。


当在你的Web Service中激发了一个事件时,你应该向那个URI传递信息(附带一个特定的负载),然后推送通知服务会以活动瓷砖更新,吐司(Toast)通知或者程序中真实数据的方式将数据发送到用户的手机中。


从推送通知服务(Push Notification Service)中获取定制的URI


我们得使用Microsoft.Phone.Notification程序集,从推送通知服务中(PNS)获取一个定制的URI。首先,我得创建一个HttpNotificationChannel。它将自动与PNS通信(在另一个线程中),并且还得通过一个事件来捕获服务返回的内容。

HttpNotificationChannel是一个在Push Notification服务和Push Client之间创建通知通道的类,它用来创建一个raw,tile和 toast通知的订阅。该通道的创造流程是这样的:如果通道已经存在,则客户端应用程序应尝试重新打开它。试图重新创建已存在的通道将导致异常。如果通道没有打开,订阅通道事件,并尝试打开通道。一旦通道打开它会触发ChannelUriUpdated事件。此事件可能向客户端发送成功创建通道的信号。现有的通道可以根据名称找到,成功找到通道的情况下,通道将被重新激活,并可以在应用程序中使用。整个过程是异步的。


一旦你有了URI,就可以在Web Service中保存它了。Web Service会初始化将要发送到你手机上的信息,我们有3种方法来实现:瓷砖(Tile)通知,吐司(Toast)通知和原生通知。


原生通知(Raw Notification)- 原生通知用于设备中真正在运行的程序。它允许你在用户使用时实时更新用户界面。


 吐司通知(Toast Notification)– 无论程序是否在运行都会收到这个消息,但在程序运行时弹出吐司消息可能会有点儿讨人厌。

云服务能够产生一种特殊的推送通知,称为 toast 通知,它通常在用户当前屏幕之上叠加显示.例如,天气应用程序可能希望将恶劣天气提醒作为toast通知显示.如果用户决定点击toast 通知,应用程序就会启动并执行其他动作。云服务能够控制 toast 通知的标题和副标题。 toast 通知也会显示包含在布署包里的应用程序图标。


瓷砖通知(Tile Notification)– 如果你的程序被钉在了开始界面中,你可以用瓷砖通知来更新瓷砖。你可以改变背景图片以及一个0-99的整数。

Tile是应用程序或者其内容在手机快速启动区的一个可视的,动态的呈现.例如天气应用程序可能选择使用tile显示用户本地时间和气候情况.因为云服务可能在任何时间变动tile的外观,这种机制可以用来将信息持续不断地传达给用户.每个手机应用程序都关联到一个单独的tile ,但是用户可以控制哪些tile附加到 Quick Launch 区。

云服务能够控制tile的背景图片, 计数器 (或者 徽章)和标题属性.这些属性使用Windows Phone Developer Tools来配置。Tile的动画和声音属性由平台设置而不是由应用程序来控制。例如,如果平台设置为用动画和嘟嘟声来响应任何tile更新 ,这对于任何 tile都是有效的。

Tile的背景图片可以参考一个本地资源,是应用程序部署的一部分,或云资源。通过引用在云中的资源,应用程序得以动态更新tile的背景图像。这使得需要提前进行背景图像处理,然后才显示出来的场景也能够得以应用。在大多数情况下,应用程序包应包含所有需要的tile背景图片,因此这是提高性能和电池寿命***的解决方案。

 

Toast 和 Tile 通知是Windows Phone 7平台系统定义的通知。和RAW 通知不同,所有的应用程序都可以创建他们自己的负载格式并相应地解析它们。

 

通知的类型

http://msdn.microsoft.com/en-us/library/ff941124(v=VS.92).aspx

 

向Windows Phone推送通知

http://msdn.microsoft.com/en-us/library/ff402545(VS.92).aspx

 

http://msdn.microsoft.com/zh-cn/gg615432.aspx

 

微软的对推送通知的官方教程文档和实例源代码(实验文档 源代码)


本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1078704