protected override async void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); NavigationFrame.Navigating += NavigationFrame_Navigating; NavigationFrame.Navigated += NavigationFrameOnNavigated; SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested; // Get list of patterns var patternCategories = (await Patterns.GetCategoriesAsync()).ToList(); HamburgerMenu.ItemsSource = patternCategories; // Options HamburgerMenu.OptionsItemsSource = new[] { new Option { Glyph = "\xE10F", Name = "About", PageType = typeof(About) } }; HideInfoArea(); NavigationFrame.Navigate(typeof(About)); if (!string.IsNullOrWhiteSpace(e?.Parameter?.ToString())) { var parser = DeepLinkParser.Create(e.Parameter.ToString()); var targetPattern = await Pattern.FindAsync(parser.Root, parser["pattern"]); if (targetPattern != null) { NavigateToPattern(targetPattern); } } }
protected override async void OnActivated(IActivatedEventArgs args) { await RunAppInitialization(null); if (args.Kind == ActivationKind.Protocol) { try { // Launching via protocol link var parser = DeepLinkParser.Create(args); var targetPattern = await Pattern.FindAsync(parser.Root, parser["pattern"]); if (targetPattern != null) { Shell.Current?.NavigateToPattern(targetPattern); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"Error processing protocol launch: {ex.ToString()}"); } } }