Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать методы класса 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) или более поздней версии.
- Вы создали заявку на приложение в Центре партнеров, и это приложение опубликовано в магазине приложений. При необходимости можно настроить приложение, чтобы оно не было обнаружено в Магазине во время его тестирования. Дополнительные сведения см. в руководстве по тестированию .
- Если вы хотите получить сведения о лицензии для надстройки для приложения, необходимо также создать надстройку в Центре партнеров.
Код в этом примере предполагает:
- Код выполняется в контексте страницы , которая содержит ProgressRing с именем
workingProgressRing
и TextBlock с именемtextBlock
. Эти объекты используются для указания, что выполняется асинхронная операция и для отображения выходных сообщений соответственно. - Файл кода содержит директиву "using" для пространства имен Windows.Services.Store.
- Приложение — это однопользовательское приложение, которое запускается только в контексте пользователя, запускающего приложение. Дополнительные сведения см. в разделе покупки в приложении и пробные версии.
Заметка
Если у вас есть классическое приложение, использующее мост классических приложений, может потребоваться добавить дополнительный код, не показанный в этом примере, чтобы настроить объект StoreContext. Дополнительные сведения см. в статье Использование класса StoreContext в классическом приложении, использующем подключение через Desktop Bridge.
Пример кода
Чтобы получить сведения о лицензии для текущего приложения, используйте метод 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.
}
}
Чтобы ознакомиться с полным примером приложения, см. пример магазина .