【问题标题】:WP8.1 silverlight - Notification activated event not being calledWP8.1 silverlight - 未调用通知激活事件
【发布时间】:2016-08-16 14:18:17
【问题描述】:

我正在开发一个 Windows Phone 8.1 silverlight 应用程序,处理原始通知。

应用程序在前台收到通知时,必须取消通知并使用ToastNotificationManager.CreateToastNotifier().创建新通知

它还有一个backgroundtask 来处理后台收到的原始通知,它使用ToastNotificationManager.CreateToastNotifier(). 将收到的原始通知转换为toast 通知

还需要在点击此通知时执行一些操作 A。

当应用在前台收到通知,但在暂停应用后点击通知时会出现问题。由于注册的此类通知的激活事件不在后台任务中(因为通知是在前台逻辑中形成的),所以点击通知时不执行任何动作A。

这似乎是一个限制,对于WP8.1 silverlight 应用程序。有人可以为这个问题提出解决方案吗??

【问题讨论】:

  • 通过 RAW 通知,您实际上是指 RAW 通知还是 Toast 通知(这是 WP 中的两种不同类型的通知。
  • 我只指原始通知,因为在 WP8.1 中,后台任务仅由原始通知触发。

标签: windows-phone-8.1 windows-phone-silverlight


【解决方案1】:

如果您需要在点击 Toast 后执行一些操作,您应该将 wp:Param 添加到您的 Toast 中,并在您的应用程序中处理。 Toast 会是这样的

<wp:Notification xmlns:wp=\"WPNotification\">
    <wp:Toast>
        <wp:Text1>You title</wp:Text1>
        <wp:Text2>Your subtitle</wp:Text2>" +
        <!-- You can add any parameter you want in deep url -->
        <wp:Param>/Page2.xaml?NavigatedFrom=Toast Notification</wp:Param>
    </wp:Toast>
</wp:Notification>

当您点击 toast 时,默认情况下会打开您应用的 Page2.xaml 并将 uri 参数传递给它

【讨论】:

  • 好的,但是为什么不能从 Activated 事件导航到 Page2?这是 WP8.1 silverlight 应用程序的限制吗?
  • @Tulika 我不明白你的目标
  • 目前,执行动作 A 的逻辑是从前台或后台任务的 toastnotification 的激活事件中完成的。您建议的替代方案需要我在 toast xml 中添加参数,我的问题是我们不能仅从 toast 的激活事件中实现动作 A 吗?
  • @Tulika 你试过这个活动吗? msdn.microsoft.com/en-us/library/windows/apps/xaml/…
  • 是的,我只使用这个激活的事件。但正如问题中提到的,问题仅适用于一种情况,当从前台显示 toast 通知时,因此在 FG 逻辑中提到了绑定到 toast 的激活事件,但是当应用程序在 BG 中时单击了 toast。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-05
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多