带参数的推送通知不接收 Windows Phone

Posted

技术标签:

【中文标题】带参数的推送通知不接收 Windows Phone【英文标题】:push notifications with param don't receive windows phone 【发布时间】:2013-09-06 19:23:26 【问题描述】:

我遇到了一个非常奇怪的问题。我已经在我的应用程序中实现了推送通知,它工作正常,但前提是我不发送带有推送通知的参数。我的应用程序是 Windows Phone 8 应用程序。

由于某种原因,带有参数的推送通知不会到达我的手机,但如果没有参数,它们会。我已经尝试了很多“输入”来检查它是否是因为它不是有效的 uri、字符串等,但没有任何反应。

更奇怪的是,来自 Microsoft 服务器的响应说它已交付。

HTTP/1.1 200 OK 缓存控制:私有服务器:Microsoft-IIS/7.5 X-DeviceConnectionStatus:已连接 X-NotificationStatus:已收到 X 订阅状态​​:活动 X 消息 ID: 00000000-0000-0000-0000-000000000000 活动 ID: 381e48cc-7a1d-4076-979d-953a622bfc7d X 服务器:DB3MPNSM009 X-AspNet-版本:4.0.30319 X-Powered-By:ASP.NET 日期:9 月 6 日,星期五 2013 19:17:32 GMT 内容长度:0

发送,但不接收:

<?xml version="1.0" encoding="utf-8"?>
                <wp:Notification xmlns:wp="WPNotification">
                   <wp:Toast>
                        <wp:Text1>Title test</wp:Text1>
                        <wp:Text2>Message test</wp:Text2>
                        <wp:Param>/Page2.xaml</wp:Param> 
                   </wp:Toast>
                </wp:Notification>

发送,但不接收

<?xml version="1.0" encoding="utf-8"?>
                <wp:Notification xmlns:wp="WPNotification">
                   <wp:Toast>
                        <wp:Text1>Title test</wp:Text1>
                        <wp:Text2>Message test</wp:Text2>
                        <wp:Param>/Page2.xaml?id=34</wp:Param> 
                   </wp:Toast>
                </wp:Notification>

发送和接收

<?xml version="1.0" encoding="utf-8"?>
                <wp:Notification xmlns:wp="WPNotification">
                   <wp:Toast>
                        <wp:Text1>Title test</wp:Text1>
                        <wp:Text2>Message test</wp:Text2>
                        <wp:Param></wp:Param> 
                   </wp:Toast>
                </wp:Notification>

我不知道问题可能出在哪里。我希望有人可以帮助我。

问候,

汤姆

【问题讨论】:

【参考方案1】:

答案可能在这里http://msdn.microsoft.com/en-us/library/windows/apps/jj662938(v=vs.105).aspx...我在使用多个查询字符串参数时遇到了同样的问题。

我做了?something=value&amp;amp;somethingelse=value(失败) 然后我注意到&amp;amp; 在示例中是使用&amp;amp; 编码的。

所以当我把它改成?something=value&amp;amp;somethingelse=value时,就成功收到了通知。

【讨论】:

您的回答解决了我的问题。原来,首先,我使用的是“&”而不是“&”。一旦我改变了它,我只是发送了“Param”值。因此,当应用程序未在前台运行时,当 toast 到达时,我的应用程序没有收到任何额外的数据。但后来,我注意到我可以使用第四个节点:“NavigationUri”。只有当 toast 到达时应用程序正在运行时,才会读取参数。 NavigationUri(重新)在特定页面上启动应用程序

以上是关于带参数的推送通知不接收 Windows Phone的主要内容,如果未能解决你的问题,请参考以下文章

如何发送推送通知 windows phone 8 应用程序?

应用程序未运行时的 Windows Phone 7 推送通知

当 Windows (phone) 8.1 应用程序在前台时接收并处理通知参数

Windows Phone 8 推送通知 - 不支持的频道 uri

是否可以在 Windows Phone 8.1 中本地化推送通知文本

Windows Phone 公司应用程序的无配额推送通知