アプリをタスク バーにピン留めするPin your app to the taskbar

アプリをスタート メニューにピン留めできるのと同様に、プログラムを使ってアプリをタスク バーにピン留めすることができます。You can programmatically pin your own app to the taskbar, just like you can pin your app to the Start menu. アプリが現在ピン留めされているかどうか、またタスク バーがピン留めを許可しているかどうかを確認できます。And you can check whether your app is currently pinned, and whether the taskbar allows pinning.

タスク バー

重要

Fall Creators Update が必要です:。SDK 16299 を対象にして、16299 以降、タスク バー Api を使用するビルドを実行します。Requires Fall Creators Update: You must target SDK 16299 and be running build 16299 or higher to use the taskbar APIs.

重要な API:TaskbarManager クラスImportant APIs: TaskbarManager class

アプリのタスク バーへのピン留めをユーザーに確認するWhen should you ask the user to pin your app to the taskbar?

TaskbarManager クラスを使うと、アプリのタスク バーへのピン留めをユーザーに確認できます。ユーザーは要求を承認する必要があります。The TaskbarManager class lets you ask the user to pin your app to the taskbar; the user must approve the request. 多くの労力をかけて優れたアプリを作成したら、ユーザーにそのアプリをタスク バーにピン留めするように求めることができます。You put a lot of effort into building a stellar app, and now you have the opportunity to ask the user to pin it to taskbar. コードについて詳しく説明する前に、エクスペリエンスを設計するときの注意点を示します。But before we dive into the code, here are some things to keep in mind as you are designing your experience:

  • "タスク バーへのピン留め" を実行するよう明確に呼びかける、スムーズで簡単に無視できる UX をアプリで作成すること。Do craft a non-disruptive and easily dismissible UX in your app with a clear "Pin to taskbar" call to action. このためには、ダイアログとポップアップを使用しないようにします。Avoid using dialogs and flyouts for this purpose.
  • アプリをピン留めするようユーザーに要求する前に、アプリのピン留めの価値について明確に説明すること。Do clearly explain the value of your app before asking the user to pin it.
  • タイルが既にピン留めされているか、デバイスでピン留めがサポートされていない場合、アプリをピン留めするようユーザーに要求しないこと。Don't ask a user to pin your app if the tile is already pinned or the device doesn’t support it. (この記事では、ピン留めがサポートされているかどうかを判別する方法を説明します。)(This article explains how to determine whether pinning is supported.)
  • アプリをピン留めするようユーザーに繰り返し要求しないこと (ユーザーが不快になる恐れがあります)。Don't repeatedly ask the user to pin your app (they will probably get annoyed).
  • 明示的なユーザー操作を必要としない場合や、アプリが最小化されているか開いていないときに、ピン留めの API を呼び出さないこと。Don't call the pin API without explicit user interaction or when your app is minimized/not open.

1. 必要な Api が存在するかどうかを確認します。1. Check whether the required APIs exist

アプリで Windows 10 の以前のバージョンをサポートする場合は、TaskbarManager クラスが利用できるかどうかを確認する必要があります。If your app supports older versions of Windows 10, you need to check whether the TaskbarManager class is available. ApiInformation.IsTypePresent メソッドを使ってこの確認を行えます。You can use the ApiInformation.IsTypePresent method to perform this check. TaskbarManager クラスを利用できない場合は、API への呼び出しを実行しないでください。If the TaskbarManager class isn't available, avoid executing any calls to the APIs.

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

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

2. タスク バーが存在し、ピン留めを使用するかどうかを確認してください。2. Check whether taskbar is present and allows pinning

UWP アプリはさまざまなデバイスで実行できます。それらのすべてがタスク バーをサポートするとは限りません。UWP apps can run on a wide variety of devices; not all of them support the taskbar. 現時点では、デスクトップ デバイスのみがタスク バーをサポートしています。Right now, only Desktop devices support the taskbar.

タスク バーが利用できる場合でも、ユーザーのコンピューターのグループ ポリシーにより、タスク バーのピン留めが無効になっている場合があります。Even if the taskbar is available, a group policy on the user's machine might disable taskbar pinning. そのため、アプリをピン留めする前に、タスク バーへのピン留めがサポートされているかどうかを確認する必要があります。So, before you attempt to pin your app, you need to check whether pinning to the taskbar is supported. TaskbarManager.IsPinningAllowed プロパティは、タスク バーが存在してピン留めを使用できる場合には true を返します。The TaskbarManager.IsPinningAllowed property returns true if the taskbar is present and allows pinning.

// Check if taskbar allows pinning (Group Policy can disable it, or some device families don't have taskbar)
bool isPinningAllowed = TaskbarManager.GetDefault().IsPinningAllowed;

注意

アプリのタスク バーへのピン留めを行わず、タスク バーが利用できるかどうかだけを確認するには、TaskbarManager.IsSupported プロパティを使用します。If you don't want to pin your app to the taskbar and just want to find out whether the taskbar is available, use the TaskbarManager.IsSupported property.

3.アプリがタスク バーに現在固定されているかどうかを確認します。3. Check whether your app is currently pinned to the taskbar

アプリが既にタスク バーにピン留めされている場合には、アプリのタスク バーへのピン留めをユーザーに求める意味がありません。Obviously, there's no point in asking the user to let you pin the app to the taskbar if it's already pinned there. ユーザーに要求する前に、TaskbarManager.IsCurrentAppPinnedAsync メソッドを使うと、アプリが既にピン留めされているかどうかを確認できます。You can use the TaskbarManager.IsCurrentAppPinnedAsync method to check whether the app is already pinned before asking the user.

// 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。アプリをピン留め4. Pin your app

タスク バーが存在し、ピン留めが許可されており、アプリが現在ピン留めされていない場合には、ユーザーがアプリをピン留めできることをユーザーに知らせる、控えめなヒントを表示することができます。If the taskbar is present and pinning is allowed and your app currently isn't pinned, you might want to show a subtle tip to let users know that they can pin your app. たとえば、UI のどこかにピンのアイコンを表示して、ユーザーがクリックできるようにすることができます。For example, you might show a pin icon somewhere in your UI that the user can click.

ユーザーがピン留めのお勧めの UI をクリックした場合、TaskbarManager.RequestPinCurrentAppAsync メソッドを呼び出すことができます。If the user clicks your pin suggestion UI, you would then call the TaskbarManager.RequestPinCurrentAppAsync method. このメソッドにより、アプリをタスク バーにピン留めするかどうかの確認を求めるダイアログがユーザーに表示されます。This method displays a dialog that asks the user to confirm that they want your app pinned to the taskbar.

重要

これは、フォアグラウンド UI スレッドから呼び出す必要があります。それ以外の場合は例外がスローされます。This must be called from a foreground UI thread, otherwise an exception will be thrown.

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

ピン留めのダイアログ

このメソッドは、アプリがタスク バーにピン留めされたかどうかを示す、ブール値を返します。This method returns a boolean value that indicates whether your app is now pinned to the taskbar. アプリが既にピン留めされている場合は、このメソッドは、ユーザーにダイアログを表示せずに、すぐに true を返します。If your app was already pinned, the method immediately returns true without showing the dialog to the user. ユーザーがダイアログで [いいえ] をクリックしたか、アプリをタスク バーにピン留めすることが許可されていない場合、メソッドは false を返します。If the user clicks "no" on the dialog, or pinning your app to the taskbar isn't allowed, the method returns false. ユーザーが [はい] をクリックすると、アプリがピン留めされ、API から true が返されます。Otherwise, the user clicked yes and the app was pinned, and the API will return true.

参考資料Resources