Получение информации о лицензии для приложений и надстроек
В этой статье рассказывается, как использовать методы класса StoreContext из пространства имен Windows.Services.Store для получения информации о лицензии для текущего приложения и его надстроек. Например, с помощью этих сведений можно определить, активны ли лицензии для приложения или его надстроек или они являются лицензиями пробной версии.
Примечание
Пространство имен Windows.Services.Store впервые появилось в Windows 10 версии 1607 и может использоваться только в проектах, предназначенных для Windows 10 Anniversary Edition (10.0; сборка 14393) или более поздней версии в Visual Studio. Если приложение предназначено для предыдущих версий Windows 10, необходимо использовать пространство имен Windows.ApplicationModel.Store, а не пространство имен Windows.Services.Store. Дополнительные сведения см. в этой статье.
Предварительные требования
Для этого примера необходимо выполнение следующих предварительных условий:
- Создан проект Visual Studio для приложения универсальной платформы Windows (UWP), предназначенный для Windows 10 Anniversary Edition (10.0; сборка 14393) и более поздних выпусков.
- Вы создали отправку приложения в Центре партнеров, и это приложение опубликовано в Магазине. При необходимости можно настроить приложение, чтобы его нельзя было найти в Магазине, пока вы его тестируете. Подробнее см. в нашем руководстве по тестированию.
- Если вы хотите получить сведения о лицензии для надстройки для приложения, необходимо также создать надстройку в Центре партнеров.
В коде из этого примера предполагается следующее:
- Код выполняется в контексте страницы Page, которая содержит ProgressRing с именем
workingProgressRing
и TextBlock с именемtextBlock
. Эти объекты используются для индикации выполнения асинхронной операции и отображения выводимых сообщений, соответственно. - Файл кода содержит оператор using для пространства имен Windows.Services.Store.
- Приложение — однопользовательское и выполняется только в контексте пользователя, запустившего его. Подробнее см. в разделе Покупки из приложения и пробные версии.
Примечание
Если у вас есть классическое приложение, которое использует мост для классических приложений, вам может потребоваться добавить дополнительный код, не показанный в этом примере, для настройки объекта StoreContext. Дополнительные сведения см. в разделе Использование класса StoreContext в классическом приложении, в котором применяется мост для классических приложений.
Пример кода
Для получения информации о лицензии для текущего приложения используйте метод GetAppLicenseAsync. Это асинхронный метод, который возвращает объект StoreAppLicense, предоставляющий сведения о лицензии для приложения, включая свойства, указывающие, имеется ли сейчас у пользователя действительная лицензия на использование приложения (IsActive) и распространяется ли лицензия на пробную версию (IsTrial).
Для доступа к лицензиям для постоянных надстроек текущего приложения, для которых у пользователя есть права на использование, используйте свойство AddOnLicenses объекта StoreAppLicense. Это свойство возвращает коллекцию объектов StoreLicense, представляющих лицензии на надстройки.
private StoreContext context = null;
public async void GetLicenseInfo()
{
if (context == null)
{
context = StoreContext.GetDefault();
// If your app is a desktop app that uses the Desktop Bridge, you
// may need additional code to configure the StoreContext object.
// For more info, see https://aka.ms/storecontext-for-desktop.
}
workingProgressRing.IsActive = true;
StoreAppLicense appLicense = await context.GetAppLicenseAsync();
workingProgressRing.IsActive = false;
if (appLicense == null)
{
textBlock.Text = "An error occurred while retrieving the license.";
return;
}
// Use members of the appLicense object to access license info...
// Access the valid licenses for durable add-ons for this app.
foreach (KeyValuePair<string, StoreLicense> item in appLicense.AddOnLicenses)
{
StoreLicense addOnLicense = item.Value;
// Use members of the addOnLicense object to access license info
// for the add-on.
}
}
Полный пример приложения см. в разделе Пример для Магазина.
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по