プライマリ タイル API
Note
Lives タイルは、新しいバージョンの Windows ではサポートされていない Windows 10 の機能です。 新しいアプリの場合は、 App アイコンの現在のガイダンスに従うことをお勧めします。
プライマリ タイル API を使用すると、アプリが現在スタート画面にピン留めされているかどうかを確認し、アプリのプライマリ タイルをピン留めするように要求できます。
重要
Creators Update が必要: プライマリ タイル API を使用するには、SDK 15063 をターゲットとし、Windows 10 ビルド 15063 以降を実行している必要があります。
重要な API: StartScreenManager クラス、 ContainsAppListEntryAsync、 RequestAddAppListEntryAsync
プライマリ タイル API を使用するタイミング
アプリのプライマリ タイルの優れたエクスペリエンスの設計には多くの労力が必要です。これで、ユーザーにスタート画面にピン留めするように求める機会が得られます。 ただし、コードを詳しく見る前に、エクスペリエンスを設計する際に留意すべき点をいくつか次に示します。
- 実行 明確な "ライブ タイルのピン留め" 呼び出しを使用して、中断を伴わない簡単に無視できる UX をアプリで作成します。
- アプリの Live Tile の値を明確に説明してから ユーザーにピン留めを求めます。
- タイルが既にピン留めされているか、デバイスでサポートされていない場合は ユーザーにアプリのタイルをピン留めするように依頼しないでください (詳細については、以下を参照してください)。
- アプリのタイルをピン留めするように 繰り返しユーザーに求めないでください (おそらく煩わされます)。
- ユーザーと明確にやり取りせずに、またはアプリが最小化されているときや開かれていないときに、ピン留め API を呼び出してはなりません。
API が存在するかどうかを確認する
アプリで以前のバージョンの Windows 10 がサポートされている場合は、これらのプライマリ タイル API が使用可能かどうかを確認する必要があります。 これを行うには、ApiInformation を使用します。 プライマリ タイル API を使用できない場合は、API への呼び出しを実行しないでください。
if (ApiInformation.IsTypePresent("Windows.UI.StartScreen.StartScreenManager"))
{
// Primary tile API's supported!
}
else
{
// Older version of Windows, no primary tile API's
}
スタート画面でアプリがサポートされているかどうかを確認する
現在のスタート メニューとアプリの種類によっては、アプリを現在のスタート画面にピン留めできない場合があります。 たとえば、IoT または Xbox デバイスでは、スタート画面へのピン留めはサポートされていません。 そのため、ピン UI を表示したり、ピン コードを実行したりする前に、最初にアプリが現在のスタート画面でもサポートされているかどうかを確認する必要があります。 サポートされていない場合は、タイルをピン留めするようにユーザーに求めないでください。
// Get your own app list entry
// (which is always the first app list entry assuming you are not a multi-app package)
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];
// Check if Start supports your app
bool isSupported = StartScreenManager.GetDefault().SupportsAppListEntry(entry);
現在ピン留めされているかどうかを確認する
プライマリ タイルが現在 Start にピン留めされているかどうかを確認するには、 ContainsAppListEntryAsync メソッドを使用します。
// Get your own app list entry
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];
// Check if your app is currently pinned
bool isPinned = await StartScreenManager.GetDefault().ContainsAppListEntryAsync(entry);
プライマリ タイルをピン留めする
プライマリ タイルが現在ピン留めされておらず、タイルがスタート画面でサポートされている場合は、プライマリ タイルをピン留めできるヒントをユーザーに表示できます。
Note
アプリがフォアグラウンドの間に UI スレッドからこの API を呼び出す必要があります。この API は、ユーザーが意図的にプライマリ タイルのピン留めを要求した後 (たとえば、タイルのピン留めに関するヒントに対してユーザーが [はい] をクリックした後など) にのみ呼び出す必要があります。
ユーザーがボタンをクリックしてプライマリ タイルをピン留めした場合は、 RequestAddAppListEntryAsync メソッドを呼び出して、タイルを Start にピン留めするように要求します。 これにより、タイルをスタート画面にピン留めするかどうかを確認するダイアログが表示されます。
これにより、タイルがスタート画面にピン留めされたかどうかを表すブール値が返されます。 タイルが既にピン留めされている場合は、ダイアログをユーザーに表示せずにすぐに true
が返されます。 ユーザーがダイアログで [いいえ] をクリックした場合、またはタイルをスタート画面にピン留めできない場合は、 false
が返されます。 それ以外の場合、ユーザーは [はい] をクリックし、タイルがピン留めされ、API は true
返します。
// Get your own app list entry
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];
// And pin it to Start
bool isPinned = await StartScreenManager.GetDefault().RequestAddAppListEntryAsync(entry);