using System; using Xamarin.Forms; using Xamarin.Forms.Xaml; using Xamarin.Essentials; using System.Diagnostics; namespace XamarinApp { public partial class App : Application { public App() { InitializeComponent(); MainPage = new NavigationPage(new MainPage()); AppActions.OnAppAction += AppActions_OnAppAction; } void AppActions_OnAppAction(object sender, AppActionEventArgs e) { if (Application.Current != this && Application.Current is App app) { AppActions.OnAppAction -= app.AppActions_OnAppAction; return; } Device.BeginInvokeOnMainThread(async () => { Page pageName=new Page(); if(e.AppAction.Id == "battery_info") { pageName=new BatteryInfoPage(); } else if(e.AppAction.Id == "app_info") { pageName = new AppInfoPage(); } if (pageName != null) { await Application.Current.MainPage.Navigation.PopToRootAsync(); await Application.Current.MainPage.Navigation.PushAsync(pageName); } }); } protected async override void OnStart() { try { await AppActions.SetAsync( new AppAction("app_info", "App Info", icon: "info.png"), new AppAction("battery_info", "Battery Info",icon:"battery.png")); } catch (FeatureNotSupportedException ex) { Debug.WriteLine("App Actions not supported"); } } protected override void OnSleep() { } protected override void OnResume() { } } }