Интерфейсы API для работы с основными плитками
Примечание.
Плитки жизни — это функция Windows 10, которая не поддерживается в более поздних версиях Windows. Для новых приложений рекомендуется следовать текущим рекомендациям по значкам приложений.
Api-интерфейсы основных плиток позволяют проверить, закреплено ли приложение на начальном экране и запросить закрепление основной плитки приложения.
Внимание
Требуется обновление Creators Update: необходимо установить целевой пакет SDK 15063 и работать под управлением Windows 10 сборки 15063 или более поздней версии для использования основных API плиток.
Важные API: класс StartScreenManager, ContainsAppListEntryAsync, RequestAddAppListEntryAsync
Когда следует использовать api-интерфейсы основных плиток
Вы много усилий в разработке отличного интерфейса для основной плитки вашего приложения, и теперь у вас есть возможность попросить пользователя закрепить его на начальном экране. Но прежде чем мы рассмотрим код, вот некоторые вещи, которые следует учитывать при разработке вашего интерфейса:
- Создавайте неразрушительный и легко закрываемый ПОЛЬЗОВАТЕЛЬСКИЙ интерфейс в приложении с четким вызовом "Закрепить динамическую плитку".
- Четко объясняйте значение динамической плитки приложения перед запросом пользователя закрепить его.
- Не попросите пользователя закрепить плитку приложения, если плитка уже закреплена или устройство не поддерживает его (дополнительные сведения см. ниже).
- Не повторяйте запрашивать у пользователя закрепление плитки приложения (они, вероятно, будут раздражаться).
- Не вызывайте 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
}
Проверьте, поддерживает ли приложение start
В зависимости от текущей меню и типа приложения, закрепление приложения на текущем начальном экране может не поддерживаться. Например, устройства Интернета вещей или xbox не поддерживают закрепление на начальном экране. Таким образом, прежде чем отображать любой пользовательский интерфейс пин-кода или выполнять любой пин-код, сначала необходимо проверить, поддерживается ли ваше приложение для текущего начального экрана. Если оно не поддерживается, не запрашивайте у пользователя закрепление плитки.
// 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);
Проверьте, закреплены ли вы в настоящее время
Чтобы узнать, закреплена ли основная плитка на начальном экране, используйте метод 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);
Закрепление основной плитки
Если основная плитка в настоящее время не закреплена, и плитка поддерживается на начальном этапе, может потребоваться показать подсказку пользователям, которые они могут закрепить основную плитку.
Примечание.
Этот API необходимо вызвать из потока пользовательского интерфейса, пока приложение находится на переднем плане, и вы должны вызывать этот API только после того, как пользователь намеренно запрашивал закрепление основной плитки (например, после нажатия пользователем кнопки "Да" на подсказку о закреплении плитки).
Если пользователь нажимает кнопку, чтобы закрепить основную плитку, вызовите метод RequestAddAppListEntryAsync , чтобы запросить закрепление плитки на начальном экране. Откроется диалоговое окно с просьбой пользователя подтвердить, что плитка закреплена на начальном экране.
При этом возвращается логическое значение, представляющее, закреплена ли плитка на начальном экране. Если плитка уже закреплена, она немедленно возвращается 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);