从Toast Notification激活时,应用程序在启动时崩溃

时间:2016-07-02 03:20:58

标签: c# uwp windows-10-universal

我创建了一个测试应用,我可以让我的应用从吐司通知启动,但我无法使用我的真实应用程序???

我的MainPage有一个框架,导航到一个有2帧的页面。我希望第二帧在点击Toast Notification时加载某个页面。

这是我的OnLaunched代码

        protected override void OnLaunched(LaunchActivatedEventArgs e)
    {

        Frame rootFrame = Window.Current.Content as Frame;

        // Do not repeat app initialization when the Window already has content,
        // just ensure that the window is active
        if (rootFrame == null)
        {
            // Create a Frame to act as the navigation context and navigate to the first page
            rootFrame = new Frame();

            rootFrame.NavigationFailed += OnNavigationFailed;

            if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
            {
                //TODO: Load state from previously suspended application
            }

            // Place the frame in the current Window
            Window.Current.Content = rootFrame;
        }

        // Otherwise an action is provided
        if (e.Arguments != "")
        {
            rootFrame.Navigate(typeof(MainPage));
            FramePage.Instance.setSecondFrame("Email");
        }
        else
        {
            if (rootFrame.Content == null)
                rootFrame.Navigate(typeof(MainPage));
        }

        // Ensure the current window is active
        Window.Current.Activate();

它起作用OnActivated就好了。任何想法??

1 个答案:

答案 0 :(得分:4)

构成您已发布的代码,您似乎正在使用OnLaunched方法处理来自Toast通知的激活。但是

  

在Windows 10中,Microsoft更新了Toast激活行为,以便当toast(或toast内部的操作)触发前台激活时,将调用OnActivated而不是OnLaunched,并使用新的激活类型ToastNotification。因此,我们能够轻松区分toast激活并相应地执行任务。

在Windows 10中,通过添加自适应模板和自定义操作,应用程序可能需要处理3种不同类型的激活。

  1. 使用Windows 10自适应模板从Toast通知进行前台激活;
  2. 使用Windows 10自适应模板从Toast通知激活后台;
  3. 旧版:使用旧版模板通过Toast通知进行前台激活。
  4. 对于第一种,我们应该通过覆盖OnActivated method而不是OnLaunched method来处理它。只有在使用旧模板时,才需要使用OnLaunched方法来处理激活。但是,如果您正在开发新的Windows 10通用应用程序,强烈建议使用新的自适应模板。

      

    使用新的自适应模板可以轻松实现所有传统的Toast模板。通过使用新的自适应模板,您可以拥有一致的方式和地点来处理Toast激活。

    有关详细信息,请参阅Quickstart: Sending a local toast notification and handling activations from it (Windows 10)中的处理来自Toast通知的激活。还有code sample on GitHub