Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo usar métodos de la clase StoreContext en el espacio de nombres Windows.Services.Store para obtener información de licencia para la aplicación actual y sus complementos. Por ejemplo, puedes usar esta información para determinar si las licencias de la aplicación o sus complementos están activas o si son licencias de prueba.
Nota:
El espacio de nombres Windows.Services.Store se introdujo en Windows 10, versión 1607, y solo se puede usar en proyectos que tienen como destino Windows 10 Anniversary Edition (10.0; Compilación 14393) o una versión posterior en Visual Studio. Si la aplicación tiene como destino una versión anterior de Windows 10, debes usar el espacio de nombres Windows.ApplicationModel.Store en lugar del espacio de nombres Windows.Services.Store. Para obtener más información, consulte este artículo.
Prerrequisitos
Este ejemplo tiene los siguientes requisitos previos:
- Un proyecto de Visual Studio para una aplicación para la Plataforma Universal de Windows (UWP) que tiene como objetivo la Edición de Aniversario de Windows 10 (10.0; Compilación 14393) o una versión posterior.
- Has creado un envío de aplicación en el Centro de Partners y esta aplicación está publicada en la Microsoft Store. Opcionalmente, puedes configurar la aplicación para que no se pueda detectar en la Tienda mientras la pruebas. Para obtener más información, consulte nuestra guía de pruebas de .
- Si quiere obtener información de licencia para un complemento para la aplicación, también debe crear el complemento en el Centro de partners.
En el código de este ejemplo se da por supuesto:
- El código se ejecuta en el contexto de una Page que contiene un ProgressRing denominado
workingProgressRing
y un TextBlock denominadotextBlock
. Estos objetos se usan para indicar que se está produciendo una operación asincrónica y mostrar mensajes de salida, respectivamente. - El archivo de código tiene una instrucción mediante para el espacio de nombres Windows.Services.Store.
- La aplicación es una aplicación de usuario único que solo se ejecuta en el contexto del usuario que inició la aplicación. Para obtener más información, consulte compras dentro de la aplicación y versiones de prueba.
Nota:
Si tienes una aplicación de escritorio que usa el Puente de escritorio, es posible que tengas que agregar código adicional que no se muestra en este ejemplo para configurar el objeto StoreContext. Para obtener más información, consulta "Cómo utilizar la clase StoreContext en una aplicación de escritorio que utiliza el Desktop Bridge".
Ejemplo de código
Para obtener información de licencia para la aplicación actual, use el método GetAppLicenseAsync . Este es un método asincrónico que devuelve un objeto StoreAppLicense que proporciona información de licencia para la aplicación, incluidas las propiedades que indican si el usuario tiene actualmente una licencia válida para usar la aplicación (IsActive) y si la licencia es para una versión de prueba (IsTrial).
Para acceder a las licencias de complementos duraderos de la aplicación actual para la que el usuario tiene derecho a usar, use la propiedad AddOnLicenses del objeto StoreAppLicenses . Esta propiedad devuelve una colección de objetos StoreLicense que representan las licencias de complemento.
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.
}
}
Para obtener una aplicación de ejemplo completa, consulte el ejemplo de Store.