Package.CheckUpdateAvailabilityAsync 方法

定義

* CheckUpdateAvailabilityAsync 方法可讓開發人員檢查 .appinstaller 檔案中所列主要應用程式套件的更新。 它可讓開發人員判斷是否需要更新,因為 .appinstaller 原則。 這個方法目前僅適用于透過 .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)

傳回

PackageUpdateAvailabilityResult,指出應用程式是否有更新,以及是否需要更新。

屬性

Windows 需求

裝置系列
Windows 10, version 1809 (已於 10.0.17763.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v7.0 引進)

範例

注意

MSIX Labs for Developers存放庫包含利用 MSIX將傳統型應用程式現代化的其他範例,包括使用內嵌 的 練習。AppInstaller 功能

應用程式開發人員想要在其應用程式中有一個按鈕,讓使用者能夠檢查應用程式更新。 若要讓應用程式檢查是否有可用的更新,它們會使用 CheckUpdateAvailabilityAsync 方法,如下所示。

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

開發人員想要從應用程式內部檢查更新,並在有更新可用時啟動更新程式。

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

備註

如果您嘗試在Current屬性傳回的Package物件上使用這個方法,這個方法將會失敗,並出現「拒絕存取」錯誤。 這是未來版本中可能修正的已知問題。 此頁面上的範例示範如何擷取目前應用程式套件的更新資訊。

JavaScript 不支援此方法。 不過,您可以建立Windows 執行階段元件來呼叫此方法,然後從 JavaScript UWP 應用程式呼叫此元件。 如需詳細資訊,請參閱 應用程式安裝程式檔案 API 問題

適用於

另請參閱