Windows Phone 7 - 是否可以添加其他键/值来推送通知消息

Gav*_*vin 2 push-notification windows-phone-7 mpns

我正在测试Windows Phone 7.5推送通知.我有3种不同的推送类型工作正常(Toast,Tile和Raw),并且能够毫无问题地从单元测试和Web应用程序发送消息,并在我的WP应用程序中接收它们.我希望能够为推送通知添加额外的属性,而Raw推送类型对我来说非常完美,我可以在推送消息中添加自定义键/值对或其他任何内容,并将其提取到手机应用程序中.我刚刚发现它只有在应用程序运行且我的单元测试失败时(单元测试中收到抑制通知状态)才能运行,当电话应用程序没有运行时(检查文档也证实了这一点).反正有没有添加额外的属性(键/值)toast或tile消息或某种方式我可以用另一种方式使用raw?Toast通知似乎仅限于title属性和实际的消息属性,但我需要添加其他数据.

只是想知道是否有人有任何建议/解决方法?

MrM*_*son 7

我使用的一般做法是首先向设备发送原始通知,并在消息中嵌入电话可用数据.如果我的应用程序当前正在运行,那么我可以处理原始消息的内容并立即在手机上使用它.但是,如果应用程序当前未在手机上运行,​​您将收到来自推送服务器的通知,告知无法传递该消息.如果我收到此回复,我会发送Toast/Tile通知.

使用Toast通知,您可以访问的唯一参数化是将启动应用程序的URI.这是使用wp:param消息的节点指定的.例如.

<wp:Notification xmlns:wp="WPNotification">
  <wp:Toast>
    <wp:Text1>Toast Title</wp:Text1>
    <wp:Text2>Toast sub title</wp:Text2>
    <wp:Param>/MainPage.xaml?LaunchedFrom=A%20Toast%20Notification</wp:Param>
  </wp:Toast>
</wp:Notification>
Run Code Online (Sandbox Code Playgroud)

如果用户点击此Toast通知,您的应用程序将启动并导航到MainPage.xaml.您可以访问通过的传入的查询字符串NavigationContext.QueryString.

注意:该wp:Param节点只能发送到Mango(和更高版本)设备.此外,整个内容必须少于256个字符,否则您将收到PushErrorTypeMessageBadContent错误.(感谢Ritch Melton指出这一点).有关详细信息,请参阅MSDN上的" 发送Windows Phone推送通知"页面.

  • +1.该查询字符串限制为256个字符. (4认同)