我想知道用户是否通过点击SecondaryTile(以及点击了哪一个)打开了应用。
现在我有OnNavigatedTo方法:
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
if (!String.IsNullOrEmpty(e.Parameter.ToString()))
{
//e.Parameter is not null, LiveTile was used
//do something
}
else
{
//No of SecondaryTiles were clicked
}
}
这当然有效,但前提是app已关闭。但是当以前打开app时,在后台运行并且用户点击LiveTile,然后显示应用程序,但不执行此方法。
我该如何处理这种情况?
答案 0 :(得分:0)
MSDN:覆盖OnLaunched方法以执行任何常规应用初始化,该初始化应仅在用户正常启动应用时发生(例如,通过点击应用磁贴)。
您应该覆盖或更新OnLaunched事件以跟踪应用激活时刻并分析相应的参数(app.xaml.cs
文件)。
简而言之,如果您查看OnNavigatedTo
事件的上升方式 - 它来自检查OnLaunched
内容是否已存在的rootFrame
事件:
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
...
if (rootFrame.Content == null)
{
// When the navigation stack isn't restored navigate to the first page,
// configuring the new page by passing required information as a navigation
// parameter
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
...
}
正如您可能想象的那样,情况并非如此,因此导航事件永远不会发生。