Package.CheckUpdateAvailabilityAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
*CheckUpdateAvailabilityAsync
方法允许开发人员检查 .appinstaller 文件中列出的main应用包的更新。 它允许开发人员确定由于 .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 实验室存储库包含有关利用 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 问题。