Package.CheckUpdateAvailabilityAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
*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 の問題」を参照してください。