- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WP7 开发 31 日谈——第19日:推送通知
Windows Phone 7 开发 31 日谈——第19日:推送通知
By Jeff Blankenburg
本文是“Windows Phone 7 开发 31 日谈” 系列的第19日。
昨天,我介绍了WebBrowser控件,以及如何在程序中使用它。今天,我们来谈谈可能是这个系列中最重要的话题: 推送通知 。
可能你对推送通知这个概念还不是很熟悉,其实很简单:不用强制你的应用程序每几分钟就去检查一下服务器,服务器在有新数据的时候可以通知你的手机。
为什么要使用推送通知?
第一个原因,节省用户的电池电量。检测服务器数据很耗电,而在手机中,电池绝对是稀缺资源。你永远不会有足够的电量,并且不论你的电池能撑多久,都要尽量避免会使电池续航时间变短的通知。
第二,你可以通过推送通知来告知你的用户在程序中发生了一些有趣的事,即使程序没有运行。你还可以提醒用户应该打开程序来看看你要告诉他们的事。
推送通知的过程
为了能让你理解我在下面抛出来的代码,我认为很有必要向你精确地解释一下这个过程中所发生的事。
用户在手机中首次运行程序时,应用程序会调用微软的推送通知服务 ,请求一个用于通信的定制URI。
当在你的Web Service中激发了一个事件时,你应该向那个URI传递信息(附带一个特定的负载),然后推送通知服务会以活动瓷砖更新,吐司(Toast)通知或者程序中真实数据的方式将数据发送到用户的手机中。
本文就是要讲解上述要点如何来做。如果你想看一个可以按部就班构建的例子,请参见Windows Phone开发人员训练包 。其中有一个非常出色的关于推送通知的教程。
从推送通知服务(Push Notification Service)中获取定制的URI
非常感谢,微软将这部分内容做得非常简单。我们得使用Microsoft.Phone.Notification程序集,不过我还是得用10行代码来从推送通知服务中(PNS)获取一个定制的URI。首先,我得创建一个HttpNotificationChannel。它将自动与PNS通信(在另一个线程中),并且还得通过一个事件来捕获服务返回的内容。
view plain
HttpNotificationChannel channel;
void GetPushChannel()
{
channel = new HttpNotificationChannel(BLANKENSOFT_ + DateTime.Now.Ticks.ToString());
channel.ChannelUriUpdated += new EventHandler(channel_ChannelUriUpdated);
channel.Open();
}
void channel_ChannelUriUpdated(object sender, NotificationChannelUriEventArgs e)
{
Dispatcher.BeginInvoke(delegate
{
URIBlock.Text = channel.ChannelUri.ToString();
});
}
在这个例子中我得到的URI是这样的:
/throttledthirdparty/01.00/AAHsLicyiJgtTaiDbJoSgmFiAgAAAAADAwAAAAQUZm52OjlzOEQ2NDJDRkl5MEVFMEQ
一旦你有了URI,就可以在Web Service中保存它了。Web Service会初始化将要发送到你手机上的信息,我们有3种方法来实现:瓷砖(Tile)通知,吐司(Toast)通知和原生通知。
不同的需求,不同的消息
我刚才提到了你可以向手机发送3种不同类型的消息。下面是一个概述:
原生通知(Raw Notification)- 原生通知用于设备中真正在运行的程序。它允许你在用户使用时实时更新用户界面。
吐司通知(Toast Notification) – 无论程序是否在运行都会收到这个消息,但在程序运行时弹出吐司消息可能会有点儿讨人厌。我会在下面的例子中演示。吐司通知不能更新你程序的数据。想做到这一点还是需要传递一个原生通知。
瓷砖通知(Tile Notification) – 如果你的程序被钉在了开始界面中,你可以用瓷砖通知来更新瓷砖。你可以改变背景图片以及一个0-99的整数。
发送一个吐司通知
一旦我们得到了推送URI,剩下的就是组合HTTP消息的事了,然后将消息发送给这个URI。下面是代码示例:
正如你所见,这部分代码很长并且比较复杂。我建议你多花些时间在Windows Phone开发人员训练包
您可能关注的文档
- 世界各国电源插头插座形式7.doc
- -01-私募投资基金募集行为管理办法-2016-7-15.docx
- 7月31日科学探究训练.doc
- 7 31 关系营销导向对顾客忠诚的影响------关系质量的中介作用.doc
- 配置电脑使用协议7.31.doc
- WP7 开发 31 日谈——第17日:枢轴控件.doc
- WP7 开发 31 日谈——第25日:外部API.doc
- WP7 开发 31 日谈——第21日:Silverlight Toolkit for Windows Phone.doc
- 7月31日 高一语法之名词 代词及数词 最新教案和讲义.doc
- 解决WIN7下OrCAD Capture不显示窗口的问题.doc
文档评论(0)