Package.CheckUpdateAvailabilityAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
El método *CheckUpdateAvailabilityAsync
permite a los desarrolladores comprobar si hay actualizaciones en el paquete de aplicación principal que se muestra en el archivo .appinstaller. Permite al desarrollador determinar si las actualizaciones son necesarias debido a la directiva .appinstaller. Actualmente, este método solo funciona para las aplicaciones instaladas a través de archivos .appinstaller.
public:
virtual IAsyncOperation<PackageUpdateAvailabilityResult ^> ^ CheckUpdateAvailabilityAsync() = CheckUpdateAvailabilityAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<PackageUpdateAvailabilityResult> CheckUpdateAvailabilityAsync();
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<PackageUpdateAvailabilityResult> CheckUpdateAvailabilityAsync();
function checkUpdateAvailabilityAsync()
Public Function CheckUpdateAvailabilityAsync () As IAsyncOperation(Of PackageUpdateAvailabilityResult)
Devoluciones
PackageUpdateAvailabilityResult que indica si una aplicación tiene una actualización y si es necesaria la actualización.
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10, version 1809 (se introdujo en la versión 10.0.17763.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v7.0)
|
Ejemplos
Nota:
El repositorio MSIX Labs for Developers contiene ejemplos adicionales sobre la modernización de aplicaciones de escritorio aprovechando MSIX, incluido un ejercicio con el insertado . Característica AppInstaller.
Un desarrollador de aplicaciones quiere tener un botón en su aplicación que permita a un usuario comprobar si hay actualizaciones de aplicaciones. Para permitir que la aplicación compruebe si hay disponible una actualización, use el CheckUpdateAvailabilityAsync
método como se muestra a continuación.
private async void CheckForUpdatesButton_Click(object sender, RoutedEventArgs e)
{
// Get the current app's package for the current user.
var pm = new PackageManager();
Package currentPackage = pm.FindPackageForUser(string.Empty, Package.Current.Id.FullName);
PackageUpdateAvailabilityResult result = await currentPackage.CheckUpdateAvailabilityAsync();
switch (result.Availability)
{
case PackageUpdateAvailability.Available:
GoToUpdateAvailableUIView();
break;
case PackageUpdateAvailability.Required:
GoToUpdateRequiredUIView();
break;
case PackageUpdateAvailability.NoUpdates:
// Dismissable ‘Ok’ dialog.
ShowNoUpdateAvailableDialog();
break;
case PackageUpdateAvailability.Unknown:
default:
// Log and ignore error.
Logger.Log($"No update information associated with app {Package.Current.DisplayName}");
// Dismissable ‘Ok’ dialog.
ShowNoUpdateAvailableDialog();
break;
}
}
Desde dentro de la aplicación, el desarrollador quiere buscar actualizaciones e iniciar el proceso de actualización si hay actualizaciones disponibles.
public async void CheckForAvailableUpdatesAndLaunchAsync(string targetPackageFullName)
{
// Get the current app's package for the current user.
var pm = new PackageManager();
Package package = pm.FindPackageForUser(string.Empty, targetPackageFullName);
PackageUpdateAvailabilityResult result = await package.CheckUpdateAvailabilityAsync();
switch (result.Availability)
{
case PackageUpdateAvailability.Available:
GoToUpdateAvailableUIView();
break;
case PackageUpdateAvailability.Required:
GoToUpdateRequiredUIView();
break;
case PackageUpdateAvailability.NoUpdates:
// Launch target app and close AppInstaller.
LaunchTargetApp(targetPackageFullName);
await ConsolidateAppInstallerView();
break;
case PackageUpdateAvailability.Unknown:
default:
// Log and ignore error.
Logger.Log($"No update information associated with app {targetPackageFullName}");
// Launch target app and close AppInstaller.
LaunchTargetApp(targetPackageFullName);
await ConsolidateAppInstallerView();
break;
}
}
Comentarios
Si intenta usar este método en el objeto Package devuelto por la propiedad Current , este método producirá un error "Acceso denegado". Se trata de un problema conocido que puede corregirse en una versión futura. En el ejemplo de esta página se muestra cómo recuperar información de actualización sobre el paquete de la aplicación actual.
Este método no se admite en JavaScript. Sin embargo, puedes crear un componente de Windows Runtime que llame a este método y, a continuación, llamar a este componente desde una aplicación para UWP de JavaScript. Para obtener más información, consulte Problemas de api de archivos del instalador de aplicaciones.