应用程序启动时检查启动Uri

时间:2014-09-15 16:56:21

标签: c# windows-phone-8

是否可以检查应用是否已从App.xaml.cs中的辅助磁贴导航到?我需要以某种方式将用户从启动屏幕上的辅助磁贴链接到WiFi启动uri,而无需用户首先导航到MainPage。我想办理Application_LaunchingApplication_Activated办理登机手续。目前我在MainPage中的OnNavigatedTo事件中执行此操作,该事件在内置WiFi应用程序之前显示MainPage,这对用户来说既困惑又烦人。

MainPage.xaml.cs中

//From Pinned Tile
protected async override void OnNavigatedTo(NavigationEventArgs e)
    {
        if (NavigationContext.QueryString.ContainsKey(Constants.Key))
        {
            string _title = null;
            _title = NavigationContext.QueryString[Constants.Key];

            if (_title != null)
            {
                switch (_title)
                {
                    case "Tile_WiFi":
                        await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-wifi:"));
                        break;

                NavigationContext.QueryString.Remove(Constants.Key);
            }
        }
    }

我无法在App.xaml.cs中使用NavigationServiceNavigationContext。还有其他选择吗?需要注意的是,我从商店中执行此功能的其他应用程序中得到了这个想法,他们没有在内置应用程序之前首先导航到MainPage的问题。

private void Application_Launching(object sender, LaunchingEventArgs e)
    {
        //check if we are to navigate to WiFi here
    }

1 个答案:

答案 0 :(得分:0)

辅助磁贴可以具有直接指向页面的导航URI,并且当用户点击辅助磁贴时,该页面将直接导航到该页面。

如果您不想显示任何页面,但启动另一个应用程序,您可以尝试处理RootFrame.Navigating事件,然后检查uri并查询NavigatingCancelEventArgs参数并取消导航。