一.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通知 |
以自定义的格式将信息直接发送到您的应用程序。 |
======================================================================
注:以上内容为本人整理数篇资料后的文档,愿与大家一起分享。(小莫)