刚接触了推送通知机制不久,也写了几个demo,以下是几点小结:
(1) 推送toast通知中的格式注意事项:
首先xml的内容格式是固定的,如:
string toastMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<wp:Notification xmlns:wp=\"WPNotification\">" +
"<wp:Toast>" +
"<wp:Text1><string></wp:Text1>" +
"<wp:Text2><string></wp:Text2>" +
"<wp:Param><string></wp:Param>" +
"</wp:Toast>" +
"</wp:Notification>";
其中,当param内容为空时,可以省略不写这一节点。同时,在xml中一些字符是要进行转换的,如下所示(引自msdn):
<Text1> 和 <Text2> 都采用字符串格式。
<Param> 值允许以下格式:
-
/page1.xaml– 定义应用程序启动时导航到的应用程序中的页面。该页面必须以“/”开头。
-
/page1.xaml?value1=1234 &value2=9876– 定义应用程序启动时导航到的页面,以及信息的名称/值对。该页面必须以“/”开头。
-
?value1=1234 &value2=9876– 包含传递给应用程序默认开始页面的信息名称/值对。该页面必须以“?”开头。
字符
XML 编码
<
|
<
|
>
|
>
|
&
|
&
|
‘
|
'
|
“
|
"
|
(2)当服务端发送的toast通知中有xml格式错误或者非法内容时,微软推送服务会关闭此通道,并提示出错。例如我之前在eclipse里用java写了一个简单的Server,结果在运行时总是提示出错(“The XML payload
contains invalid or improperly formatted XML or the notification type specified in the header does not match the payload type used. The channel has been closed. Check your XML payload for errors and reopen the channel to obtain a new URI.”)。
我检查了几遍,才发现是Text1中的中文编码出问题了。我在eclipse中工程的字符编码默认设置为GBK,结果发送出去的消息一直有问题,虽然我在xml中指定了utf-8的形式。后来我把工程设置为utf-8,重新编译运行就好了。
(3)我们Server端想统计推送的成败情况的话,会比较困难。因为从微软推送服务中返回的相应代码中,只是简单的反映了推送通知到达代理服务器的情况,而非通知到达客户端时的结果。比如微软的代理服务器返回了响应码200,我们Server端只是知道了信息已经成功到达了它那里,并且符合转发到客户端程序的条件;至于客户端最终是否真的收到了通知,无法从这里获知。当然,当客户端程序接收到了通知后,可以向Server端汇报,但这并不准确,因为有些信息可能因为程序不在前台运行同时又被用户忽略了。是否有更好的信息收集方案,还在调研中。
分享到:
相关推荐
微软Windows® Phone推送通知服务(PushNotificationService)为第三方开发者提供了一个弹性、专注、可持续的通道,支持发送消息、从服务器(web services)端更新Windows® Phone应用程序。 在这一部分中,一个移动应用...
vue 中简单封装类似 Toast 的消息提示插件,然后在 vue 中任意位置都可以简单使用 Toast 消息显示最前,并且默认 3 秒后自动消失 实现原理 1、vue 创建 Toast 消失提示组件的显示界面 2、js 代码动态引入 Toast 的 ...
bootstrap的toast消息框插件,弹出特效,前端用例,bootstrap 插件
类似Android上面的Toast,可轻松的扩展功能。
课程 1: 介绍 Windows Phone RAW Notifications 消息 ......................... 6 任务 1 – 创建天气服务项目 ............. 6 任务2 – 创建 Windows® Phone 7 客户端应用程序 ............................. 24...
Windows-10-Toast-Notifications, python 库显示 Windows 10 Toast通知 Windows 10 Toast通知 用于显示 Windows 10 Toast通知的easy-to-use python 库,这对 Windows GUI开发非常有用。 安装pip install win
bootstrap-toast 的消息提示toastbootstrap-toast 的消息提示toastbootstrap-toast 的消息提示toastbootstrap-toast 的消息提示toastbootstrap-toast 的消息提示toastbootstrap-toast 的消息提示toast
c# winform 类似android toast消息功能 超级强大,多个项目在用,可插拔,封装好了,拿去就可以用了
Toast各种弹跳消息框,方便各种需求的用户使用,文档仅供参考。多多谅解不足
Bootoast是一款Bootstrap3 Toast消息框插件。通过Bootoast插件你可以非常方便的制作Toast消息框效果,并且插件提供了各种参数来控制Toast消息框。
toast和context 消息栏 消息提示 通知
本文实例总结了Android开发中Toast显示消息的方法。分享给大家供大家参考,具体如下: Android中提供一种简单的Toast消息提示框机制,可以在用户点击了某些按钮后,提示用户一些信息,提示的信息不能被用户点击,...
亲们,toast虽然方便,但用户体验不好,早已经过时了。发一个消息窗,调用十分方便对应用美化有帮助。
C#demo项目,用于在Windows应用程序中轻松创建Toast样式的通知。
自定义Toast,类似Android的Toast
EventMachine的Windows推送通知如所述,实现Windows Phone 7.1和8.0推送通知。用法吐司 EM.run do toast = EM::WPN::Windows71::Toast.new("http://live.net...", :text1 => "Hello", :text2 => "World" ) response ...
Toast 的消息提示方式 iToast ,iToast 实现了类似 Android Toast 的消息提示方式。
1、使用Toast实现,点击2个不同按钮,分别显示两种不同效果的消息提示。 2、编写一个列表程序。实现点击不同项,显示对应消息提示。(列表组件ListView)。 运行效果参考: