Bagikan melalui


Menyematkan aplikasi Anda ke taskbar

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

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

Penting

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 bintang, dan sekarang Anda memiliki kesempatan untuk meminta pengguna untuk menyematkannya ke taskbar. Tetapi sebelum kita menyelami kode, berikut adalah beberapa hal yang perlu diingat saat Anda merancang pengalaman Anda:

  • Buat UX yang tidak mengganggu dan mudah dihentikan di aplikasi Anda dengan ajakan bertindak yang jelas. Hindari menggunakan dialog dan flyout untuk tujuan ini. Ikon penyematan yang dapat diakses atau UX serupa direkomendasikan tetapi tidak diperlukan.
  • 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 panggil API pin tanpa interaksi pengguna eksplisit atau saat aplikasi Anda diminimalkan/tidak terbuka. Aplikasi Anda harus berada di latar depan agar proses berfungsi.
  • Jangan gunakan alat penginstal untuk memanggil API.

Persetujuan Fitur Akses Terbatas (LAF)

Penting

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

UWP

Jika aplikasi Anda mendukung versi Windows 10 yang lebih lama, Anda perlu memeriksa apakah TaskbarManager kelas tersedia. Anda dapat menggunakan metode ApiInformation.IsTypePresent untuk melakukan pemeriksaan ini. TaskbarManager Jika kelas tidak tersedia, hindari menjalankan panggilan apa pun ke API.

if (ApiInformation.IsTypePresent("Windows.UI.Shell.TaskbarManager"))
{
    // Taskbar APIs exist!
}

else
{
    // Older version of Windows, no taskbar APIs
}

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 pada komputer pengguna mungkin menonaktifkan penyematan taskbar. Jadi, sebelum mencoba menyematkan aplikasi, Anda perlu memeriksa apakah penyematan ke taskbar didukung. Properti TaskbarManager.IsPinningAllowed mengembalikan true jika taskbar ada dan memungkinkan penyematan.

// 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;

Penting

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

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.

Catatan

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 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 antarmuka pengguna saran pin Anda, Anda kemudian akan memanggil metode TaskbarManager.RequestPinCurrentAppAsync . Metode ini menampilkan dialog yang meminta pengguna untuk mengonfirmasi bahwa mereka ingin aplikasi Anda disematkan ke taskbar.

Penting

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

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

Dialog sematkan

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

Sumber