我创建了一个测试应用,我可以让我的应用从吐司通知启动,但我无法使用我的真实应用程序???
我的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就好了。任何想法??
答案 0 :(得分:4)
构成您已发布的代码,您似乎正在使用OnLaunched
方法处理来自Toast通知的激活。但是
在Windows 10中,Microsoft更新了Toast激活行为,以便当toast(或toast内部的操作)触发前台激活时,将调用OnActivated而不是OnLaunched,并使用新的激活类型ToastNotification。因此,我们能够轻松区分toast激活并相应地执行任务。
在Windows 10中,通过添加自适应模板和自定义操作,应用程序可能需要处理3种不同类型的激活。
对于第一种,我们应该通过覆盖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。