示例#1
0
        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);
                }
            }
        }
示例#2
0
        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()}");
                }
            }
        }