Xamarin.Essentials: Tindakan Aplikasi
Kelas AppActions memungkinkan Anda membuat dan merespons pintasan aplikasi dari ikon aplikasi.
Memulai
Untuk mulai menggunakan API ini, baca panduan memulai untuk Xamarin.Essentials memastikan pustaka diinstal dan disiapkan dengan benar di proyek Anda.
Untuk mengakses fungsionalitas AppActions , diperlukan penyiapan spesifik platform berikut.
Tambahkan filter niat ke kelas Anda MainActivity
:
[IntentFilter(
new[] { Xamarin.Essentials.Platform.Intent.ActionAppAction },
Categories = new[] { Android.Content.Intent.CategoryDefault })]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
...
Kemudian tambahkan logika berikut untuk menangani tindakan:
protected override void OnResume()
{
base.OnResume();
Xamarin.Essentials.Platform.OnResume(this);
}
protected override void OnNewIntent(Android.Content.Intent intent)
{
base.OnNewIntent(intent);
Xamarin.Essentials.Platform.OnNewIntent(intent);
}
Membuat Tindakan
Tambahkan referensi ke Xamarin.Essentials di kelas Anda:
using Xamarin.Essentials;
Tindakan Aplikasi dapat dibuat kapan saja, tetapi sering dibuat saat aplikasi dimulai. SetAsync
Panggil metode untuk membuat daftar tindakan untuk aplikasi Anda.
try
{
await AppActions.SetAsync(
new AppAction("app_info", "App Info", icon: "app_info_action_icon"),
new AppAction("battery_info", "Battery Info"));
}
catch (FeatureNotSupportedException ex)
{
Debug.WriteLine("App Actions not supported");
}
Jika App Actions tidak didukung pada versi tertentu dari sistem operasi a FeatureNotSupportedException
akan dilemparkan.
Properti berikut dapat diatur pada AppAction
:
- Id: Pengidentifikasi unik yang digunakan untuk merespons ketukan tindakan.
- Judul: judul yang terlihat untuk ditampilkan.
- Subjudul: Jika didukung sub-judul untuk ditampilkan di bawah judul.
- Ikon: Harus cocok dengan ikon di direktori sumber daya yang sesuai di setiap platform.
Menanggapi Tindakan
Saat aplikasi Anda mulai mendaftar untuk peristiwa tersebut OnAppAction
. Saat tindakan aplikasi dipilih, peristiwa akan dikirim dengan informasi tentang tindakan mana yang dipilih.
public App()
{
//...
AppActions.OnAppAction += AppActions_OnAppAction;
}
void AppActions_OnAppAction(object sender, AppActionEventArgs e)
{
// Don't handle events fired for old application instances
// and cleanup the old instance's event handler
if (Application.Current != this && Application.Current is App app)
{
AppActions.OnAppAction -= app.AppActions_OnAppAction;
return;
}
MainThread.BeginInvokeOnMainThread(async () =>
{
await Shell.Current.GoToAsync($"//{e.AppAction.Id}");
});
}
GetActions
Anda bisa mendapatkan daftar Tindakan Aplikasi saat ini dengan memanggil AppActions.GetAsync()
.