Menyematkan aplikasi Anda ke taskbar

Sekarang Anda dapat secara terprogram meminta pengguna untuk menyematkan aplikasi Win32 atau WinUI Anda ke taskbar, mirip dengan bagaimana Anda dapat menyematkan aplikasi Anda ke menu Mulai. Anda dapat memeriksa apakah aplikasi Anda saat ini disematkan, dan apakah taskbar mendukung penyematan.

Cuplikan layar bilah tugas Windows 11 memperlihatkan aplikasi yang disematkan di sana.

Important

Memerlukan Pembaruan Fall Creators: Anda harus menargetkan SDK 16299 dan menjalankan build 16299 atau yang lebih baru untuk menggunakan API taskbar.

API Penting: kelas TaskbarManager

Kapan Anda harus meminta pengguna untuk menyematkan aplikasi Anda ke taskbar?

Kelas TaskbarManager memungkinkan Anda meminta pengguna untuk menyematkan aplikasi Anda ke taskbar; pengguna harus menyetujui permintaan. Anda berusaha keras untuk membangun aplikasi yang hebat, dan sekarang Anda memiliki kesempatan untuk meminta pengguna menyematkannya ke bilah tugas. Tetapi sebelum kita menyelami kode, berikut adalah beberapa hal yang perlu diingat saat Anda merancang pengalaman Anda:

  • Buat UX yang tidak mengganggu dan mudah diabaikan di aplikasi Anda dengan ajakan bertindak yang jelas. Hindari menggunakan dialog dan flyout untuk tujuan ini. Ikon penyematan yang mudah diakses atau UX yang serupa disarankan, tetapi tidak wajib.
  • Pastikan aplikasi Anda memiliki nilai bagi pengguna sebelum meminta pengguna untuk menyematkannya.
  • Jangan minta pengguna untuk menyematkan aplikasi Anda jika petak peta sudah disematkan atau perangkat tidak mendukungnya. (Artikel ini menjelaskan cara menentukan apakah penyematan didukung.)
  • Jangan berulang kali meminta pengguna untuk menyematkan aplikasi Anda (mereka mungkin akan kesal).
  • Jangan mengakses API pin tanpa interaksi pengguna yang eksplisit atau ketika aplikasi Anda diminimalkan atau tidak terbuka. Aplikasi Anda harus berada di latar depan agar proses berfungsi.
  • Jangan gunakan alat penginstal untuk memanggil API.

Persetujuan Fitur Akses Terbatas (LAF)

Important

Penyematan Taskbar adalah Fitur Akses Terbatas (lihat kelas LimitedAccessFeatures). Untuk informasi selengkapnya atau untuk meminta token pembuka kunci, silakan gunakan Formulir Permintaan Token Akses LAF .

1. Periksa apakah API yang diperlukan ada

Win32

Jika Anda ingin menggunakan TaskbarManager dari aplikasi desktop WIn32, Maka Anda harus memeriksa apakah dukungan aplikasi desktop ada. Anda dapat mencari ITaskbarManagerDesktopAppSupportStatics antarmuka penanda pada TaskbarManager pabrik aktivasi untuk melakukan pemeriksaan ini. Jika antarmuka ini tidak tersedia, maka Anda tidak akan dapat menggunakan TaskbarManager dari aplikasi desktop Anda.

if (winrt::try_get_activation_factory<winrt::Windows::UI::Shell::TaskbarManager, winrt::Windows::UI::Shell::ITaskbarManagerDesktopAppSupportStatics>())
{
    // TaskbarManager desktop app support is available.
}
else
{
    // TaskbarManager desktop app support is not available.
}

2. Periksa apakah taskbar ada dan memungkinkan penyematan

Aplikasi Windows dapat berjalan di berbagai perangkat; tidak semuanya mendukung taskbar. Saat ini, hanya perangkat Desktop yang mendukung taskbar. Selain itu, aplikasi dapat meminta penyematan, tetapi penyematan mungkin tidak diizinkan pada waktu tertentu. Disarankan agar aplikasi memeriksa apakah penyematan diizinkan sebelum UX muncul untuk mencegah pengguna yang membingungkan.

Bahkan jika taskbar tersedia, kebijakan grup komputer pada komputer pengguna mungkin menonaktifkan kemampuan menyematkan di taskbar. Jadi, sebelum mencoba menyematkan aplikasi, Anda perlu memeriksa apakah penyematan ke taskbar didukung. Properti TaskbarManager.IsPinningAllowed akan mengembalikan true jika taskbar ada dan memungkinkan untuk menyemat.

// Check if taskbar allows pinning, apps may request pinning, but pinning may not be allowed at any given time. It is suggested that apps check whether pinning is allowed before a UX is surfaced in order to prevent confusing users.

bool isPinningAllowed = TaskbarManager.GetDefault().IsPinningAllowed;

Important

Ada juga persyaratan yang harus dipenuhi pada saat panggilan benar-benar dilakukan agar permintaan pin diizinkan:

  • Aplikasi berada di latar depan
  • Aplikasi memiliki entri menu Mulai
  • Agar pemberitahuan ditampilkan, pengguna harus mengaktifkan pemberitahuan sistem. Sebaiknya Anda memunculkan persyaratan ini kepada pengguna dalam UX aplikasi.

Persyaratan ini tidak akan menghasilkan pengecualian jika tidak terpenuhi, permintaan pin hanya akan ditolak. IsPinningAllowed dapat dipanggil untuk menentukan apakah permintaan pin (prompt) akan diizinkan.

Note

Jika Anda tidak ingin menyematkan aplikasi ke taskbar dan hanya ingin mengetahui apakah taskbar tersedia, gunakan properti TaskbarManager.IsSupported .

3. Periksa apakah aplikasi Anda saat ini disematkan ke taskbar

Jelas, tidak ada gunanya meminta pengguna untuk mengizinkan Anda menyematkan aplikasi ke taskbar jika sudah disematkan di sana. Anda dapat menggunakan metode TaskbarManager.IsCurrentAppPinnedAsync untuk memeriksa apakah aplikasi sudah disematkan sebelum meminta izin dari pengguna.

// Check whether your app is currently pinned
bool isPinned = await TaskbarManager.GetDefault().IsCurrentAppPinnedAsync();

if (isPinned)
{
    // The app is already pinned--no point in asking to pin it again!
}
else
{
    //The app is not pinned.
}

4. Sematkan aplikasi Anda

Jika taskbar ada dan penyematan diizinkan dan aplikasi Anda saat ini tidak disematkan, Anda mungkin ingin menampilkan tip halus untuk memberi tahu pengguna bahwa mereka dapat menyematkan aplikasi Anda. Misalnya, Anda mungkin menampilkan ikon pin di suatu tempat di UI yang dapat diklik pengguna.

Jika pengguna mengklik UI saran pin Anda, kemudian panggil metode TaskbarManager.RequestPinCurrentAppAsync. Metode ini menampilkan dialog yang meminta pengguna untuk mengonfirmasi bahwa mereka ingin aplikasi Anda disematkan ke taskbar.

Important

Ini harus dipanggil dari utas UI latar depan, jika tidak, akan muncul pengecualian.

// Request to be pinned to the taskbar.
bool isPinned = await TaskbarManager.GetDefault().RequestPinCurrentAppAsync();

Dialog Pin

Metode ini mengembalikan nilai boolean yang menunjukkan apakah aplikasi Anda sekarang disematkan ke taskbar. Jika aplikasi Anda sudah disematkan, metode akan segera kembali ke true tanpa menampilkan dialog kepada pengguna. Jika pengguna mengklik "tidak" pada dialog, atau menyematkan aplikasi Anda ke taskbar tidak diizinkan, metode akan mengembalikan false. Sebaliknya, jika pengguna mengklik ya, aplikasi tersebut akan disematkan dan API akan mengembalikan true.

Resources