次の方法で共有


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 で導入)

アプリ開発者は、ユーザーがアプリの更新をチェックできるようにするボタンをアプリに含めたいと考えています。 更新プログラムが利用可能な場合にアプリがチェックできるようにするには、次に示すように メソッドを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 の問題」を参照してください。

適用対象

こちらもご覧ください