【问题标题】:Windows Phone 7 - Is it possible to add additional key/values to push notifications messagesWindows Phone 7 - 是否可以添加其他键/值来推送通知消息
【发布时间】:2012-04-19 23:31:59
【问题描述】:

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

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

【问题讨论】:

    标签: windows-phone-7 push-notification mpns


    【解决方案1】:

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

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

    注意:wp:Param 节点只能发送到 Mango(及更高版本)设备。此外,整个内容必须少于 256 个字符,否则您将收到 PushErrorTypeMessageBadContent 错误。 (感谢 Ritch Melton 指出这一点)。更多信息可从 MSDN 上的 Sending Push Notifications for Windows Phone 页面获得。

    【讨论】:

    • 伟大的补充!我没有意识到这一点。那是整个 Uri 还是查询字符串?该信息的链接是否有机会?
    • msdn.microsoft.com/en-us/library/hh202945(v=vs.92).aspx - 向下滚动到“重要信息”部分的页面中间。关于加载时间还有其他限制,因此在尝试对这些通知执行过多操作时必须小心。
    • 谢谢。更新了相关信息的答案。
    • 谢谢。是的,我想我可以将额外的数据添加到
    【解决方案2】:

    正如您所发现的,Microsoft Push Notification Service 对您可以发送和接收的消息类型非常严格。这些推送通知的目的是提供简单的推送更新,而不是提供大量数据。灵活的 Raw 类型似乎符合要求,直到您发现:

    您可以使用原始通知向您的应用程序发送信息。如果您的应用程序当前未运行,原始通知将在 Microsoft 推送通知服务上被丢弃,并且不会传送到设备。

    但是,如果您向应用程序发送 toast 通知,则当用户单击 toast 时,应用程序将启动。当您的应用程序启动时,您应该检查服务并检索您尝试从 Web 服务或其他远程机制发送的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      相关资源
      最近更新 更多