Package.CheckUpdateAvailabilityAsync Metodo

Definizione

Il metodo *CheckUpdateAvailabilityAsync consente agli sviluppatori di verificare la presenza di aggiornamenti nel pacchetto dell'app principale elencato nel file .appinstaller. Consente allo sviluppatore di determinare se gli aggiornamenti sono necessari a causa dei criteri con estensione appinstaller. Questo metodo funziona attualmente solo per le applicazioni installate tramite file con estensione 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)

Restituisce

PackageUpdateAvailabilityResult che indica se un'applicazione ha un aggiornamento e se è necessario l'aggiornamento.

Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10, version 1809 (è stato introdotto in 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v7.0)

Esempio

Uno sviluppatore di app vuole avere un pulsante nella propria app che consente a un utente di verificare la presenza di aggiornamenti delle app. Per abilitare l'app per verificare se è disponibile un aggiornamento, utilizzano il CheckUpdateAvailabilityAsync metodo come illustrato di seguito.

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

Dall'interno dell'app, lo sviluppatore vuole verificare la presenza di aggiornamenti e avviare il processo di aggiornamento se sono disponibili gli aggiornamenti.

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

Commenti

Se si tenta di usare questo metodo nell'oggetto Package restituito dalla proprietà Current , questo metodo avrà esito negativo con un errore "Accesso negato". Si tratta di un problema noto che potrebbe essere risolto in una versione futura. L'esempio in questa pagina illustra come recuperare informazioni sull'aggiornamento del pacchetto dell'app corrente.

Questo metodo non è supportato in JavaScript. È tuttavia possibile creare un componente Windows Runtime che chiama questo metodo e quindi chiamare questo componente da un'app UWP JavaScript. Per altre informazioni, vedere Problemi relativi all'API file del programma di installazione dell'app.

Si applica a

Vedi anche