确定通知启动Windows 8应用程序的时间

时间:2012-10-27 18:54:40

标签: c# windows-8 microsoft-metro

我有通知进入我的应用程序,我希望能够在用户点击通知或实时图块(当前显示的项目)时将用户带到我的应用程序中的该页面。

有没有办法确定从Live Tile或Toast Notification启动应用时的磁贴数据是什么?

此外,用户还可以右键单击实时磁贴并将其关闭。有没有办法检测到这一点,所以我可以关闭发送实时图块或WNS处理它?<​​/ p>

谢谢!

2 个答案:

答案 0 :(得分:6)

当用户通过磁贴启动应用时,Windows无法提供确定磁贴内容的方法。根据UX准则,从以下每个方面启动应具有相应的行为:

  • 主要图块:应用应该启动到用户离开应用或应用主页的最后位置。
  • 辅助磁贴:应用应启动应用中的特定内容。
  • Toast :与辅助磁贴一样,应用应该启动应用中的特定内容。

所有三种类型的激活都会导致OnActivated事件在IActivatedEventArgs.Kind参数设置为ActivationKind.Launch时触发。

对于辅助磁贴和Toast激活,应用可以在LaunchActivatedEventArgs.Argument参数中提供其他上下文。

对于辅助切片,可以在通过SecondaryTile.Arguments属性创建切片时设置启动参数参数。

对于Toast通知,launch arguments参数在Toast通知XML中设置为属性:

<toast launch="myLaunchContext">
    ...
</toast>

最后,应用程序不需要检查用户是否已打开或关闭磁贴。 Windows和WNS将确定是否需要交付。用户可以在应用未运行时打开/关闭磁贴,因此应用保存的状态可能与设置不同步。

答案 1 :(得分:2)

您可以在App.xaml.cs

中检测应用午餐
    protected override void OnActivated(IActivatedEventArgs args)
    {
        base.OnActivated(args);

        if(args.Kind == ActivationKind.Launch)
        {

        }
    }

Here是有关如何处理ToastNotification点击事件的信息。