Package.CheckUpdateAvailabilityAsync Método

Definição

O método *CheckUpdateAvailabilityAsync permite que os desenvolvedores marcar atualizações para o pacote do aplicativo main listado no arquivo .appinstaller. Ele permite que o desenvolvedor determine se as atualizações são necessárias devido à política .appinstaller. Atualmente, esse método funciona apenas para aplicativos instalados por meio de arquivos .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)

Retornos

Um PackageUpdateAvailabilityResult que indica se um aplicativo tem uma atualização e se a atualização é necessária.

Atributos

Requisitos do Windows

Família de dispositivos
Windows 10, version 1809 (introduzida na 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v7.0)

Exemplos

Observação

O repositório do MSIX Labs for Developers contém exemplos adicionais sobre como modernizar aplicativos da área de trabalho aproveitando o MSIX, incluindo um exercício usando o inserido. Recurso AppInstaller.

Um desenvolvedor de aplicativos deseja ter um botão em seu aplicativo que permita que um usuário marcar para atualizações de aplicativo. Para habilitar o aplicativo a marcar se uma atualização estiver disponível, eles usam o CheckUpdateAvailabilityAsync método conforme mostrado abaixo.

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;
    }
}

De dentro do aplicativo, o desenvolvedor deseja marcar para atualizações e iniciar o processo de atualização se as atualizações estiverem disponíveis.

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;
    }
}

Comentários

Se você tentar usar esse método no objeto Package retornado pela propriedade Current , esse método falhará com um erro "Acesso negado". Esse é um problema conhecido que pode ser corrigido em uma versão futura. O exemplo nesta página demonstra como recuperar informações de atualização sobre o pacote do aplicativo atual.

Não há suporte para esse método no JavaScript. No entanto, você pode criar um componente Windows Runtime que chama esse método e, em seguida, chamar esse componente de um aplicativo UWP JavaScript. Para obter mais informações, consulte Problemas de API de arquivo do Instalador de Aplicativos.

Aplica-se a

Confira também