WindowsPhone消息推送服务

一.WP消息推送工作方式

如果了解C/S架构,我们可以知道客户端到服务器的消息传输可以是双向的,客户端既可以主动从服务器获取消息,也可以被动接受来自服务器通知,而不像纯B/S架构浏览器只能主动从服务器获取消息。

WP手机虽然是C/S模式,但是微软不允许手机被动接收服务器的消息,但是这样无法实现服务器通知。因此,WP提供了一种代理的机制来实现服务器通知,这就是推送通知。 推送通知是一种云服务器代理,服务器不能直接向手机客户端发送消息,必须通过云服务器代理发送。

MSDN中关于推送机制的官方流程如下:


上图显示了推送通知的主要流程。

第一步:手机上运行的客户端应用程序从推送客户端服务 (1) 请求推送通知 URI。

第二和第三步:推送客户端服务与 Microsoft 推送通知服务 (MPNS) 协商并向客户端应用程序(2 和 3)返回一个通知 URI。

第四步:客户端应用程序将此 URI 发送给云服务 (4)。

第五和步:当 Web 服务有要发送到客户端应用程序的信息时,该服务使用此 URI 向 Microsoft 推送通知服务 (5) 发送推送通知。

第六步:Microsoft 推送通知服务又将此推送通知发送给在 Windows Phone 设备 (6) 上运行的应用程序。

根据推送通知的格式以及连接到通知的负载,信息作为原始数据发送到应用程序、应用程序的磁贴在视觉上得到更新或显示 Toast 通知。发送推送通知之后,Microsoft 推送通知服务向您的 Web 服务发送一个响应代码,指示此通知已接收并且下次有机会会发送到设备。但是,Microsoft推送通知服务不提供将推送通知从 Web 服务发送到设备的端到端通信。

 

二.WP推送通知类型

Windows Phone中存在三种默认通知类型:Tile、Push 和 Toast 通知。

1.Tile通知

每个应用程序都可设置Tile,Tile是应用程序内容的可视化、动态的表示形式。当应用程序被固定显示在启动屏幕(Start Screen)时,我们就可以看到Tile的信息。Tile可以修改的三个元素包括:计数(Count)、标题(Title)和背景图像(Background)。


2.Toast通知

Toast通知是Windows Phone系统通知。它不会破坏用户的工作流,十秒钟后自动消失。Toast通知会显示在屏幕的顶部。

Toast通知的两个文本元素:标题和副标题。标题为粗体字显示的字符串,副标题为非粗体字显示的字符串。

Toast通知中,发送的数据为指定的xml格式。如果应用程序正在运行,内容发送到应用程序中;如果应用程序不在运行,弹出Tost消息框显示消息。

 

重要说明:

应用程序必须要求用户授权方可接收Toast通知,且在应用程序中必须具有允许用户禁用的Toast通知的功能。

 

3.Raw通知

Raw通知有几个特点:(1)Raw通知的格式可以任意设定,也就是推送服务可以发送任何格式的数据。(2) 只有在应用程序运行时,该类型数据才应该被发送。如果当前没有运行您的应用程序,Raw通知将被微软推通知服务丢弃,不会传递到Windows Phone设备。 (3)应该程序可以根据需要加工数据。 (4)Raw通知的有效载荷的最大为 1 KB。

 

三. 推送通知类型的选择

通知是用户体验中的重要组成部分,开发者需要仔细考虑它的使用方式。重复通知或侵入式通知会降低用户的应用程序及设备上运行的其他程序的性能。这些通知还会打扰用户。因此开发者需要考虑发送通知的频率以及希望引起用户注意的事件类型。


推式通知类型

应用示例

Tile通知

如天气应用温度变化的信息性通知。

Toast通知

立即查看,如突发新闻的重要通知。

Raw通知

以自定义的格式将信息直接发送到您的应用程序。


======================================================================

注:以上内容为本人整理数篇资料后的文档,愿与大家一起分享。(小莫)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
微软Windows® Phone推送通知服务(PushNotificationService)为第三方开发者提供了一个弹性、专注、可持续的通道,支持发送消息、从服务器(web services)端更新Windows® Phone应用程序。 在这一部分中,一个移动应用程序需要经常的查看对应的web service,以了解是否有未处理的Notification。如果保持有效状态,就会造成设备的手机模块始终处于打开状态,进而影响待机时间。如果使用Push Notifications,Web Service只要在重要的更新时,才会通知到应用程序。 Figure1 PushNotifications 当Web Service有信息需要发送到应用程序时,它发送一个Push Notification到微软的PushNotificationService服务器上,然后会将这个Push Notification转发给应用程序。依赖于Push Notification的格式和负载量,这个信息会有三种形式展现:作为原始数据发布给应用程序,应用程序的Tile将更新,或者弹出一个Toast notification。如果需要,应用程序可以使用自有的协议来与Web Service通讯。 在Push Notification被发送之后,PushNotificationService服务器会发送一个响应代码到您的Web Service。事实上,PushNotificationService不会提供您的推送通知从您的Web Service到应用程序之间的端到端确认方式。更多信息,请参考PushNotificationServiceResponseCodesforWindows®Phone. 本次动手实验将会覆盖推送通知,并介绍Silverlight中http服务的用法。在整个实验中,您将会创建服务器端的逻辑,用来发送消息到Push Notification Service。您也会创建一个简单的Windows® Phone 7 Mango应用程序,作为客户端,用来接收推送通知。客户端应用程序将会接收天气更新。服务器端的业务应用程序(一个简单的WPF应用)将会发送天气提醒道已经通过Push Notification Services注册的客户端应用程序上去。一旦Windows® Phone 7客户端应用程序接收到提醒,将会显示接收到的信息。 提示:服务器端的天气应用程序使用WindowsPhone.Recipes.Push.Messasges.dll,封装了所有发送、从Microsoft Push Notification Services接受响应的业务逻辑和功能。更多信息请参考:http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/01/14/windows-push-notification-server-side-helper-library.aspx. 目标 在本次实验课程中,您将会: • 熟悉Windows® Phone 7应用程序的通讯功能 • 熟悉Push Notification的概念和在手机上的使用行为 • 理解Push Notifications在云端和手机端如何工作 • 使用手机Push Notifications服务,创建一个Tokens (tiles), Toasts, 和 raw push notifications的订阅 • 使用WebClient注册PushNotifications • 使用Networkstatus来显示当前手机网络的状态 • 创建一个SL应用程序,用来注册pushnotificationservices(包括token和toast) ◦ 运行期控制push事件events(token,toast,和raw) ◦ 在Shell中显示token和toast信息 • 管理应用程序独立更新的sub-tiles,并链接到应用程序的制定位置(仅在Windows®Phone7.1中有效)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值