StoreContext.RequestDownloadAndInstallStorePackageUpdatesAsync 方法

定义

尝试从 Microsoft Store 下载并安装当前应用的指定包更新。 此方法还显示一个 UI 对话框,该对话框请求操作的权限。

重要

必须在 UI 线程上调用此方法。

public:
 virtual IAsyncOperationWithProgress<StorePackageUpdateResult ^, StorePackageUpdateStatus> ^ RequestDownloadAndInstallStorePackageUpdatesAsync(IIterable<StorePackageUpdate ^> ^ storePackageUpdates) = RequestDownloadAndInstallStorePackageUpdatesAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<StorePackageUpdateResult, StorePackageUpdateStatus> RequestDownloadAndInstallStorePackageUpdatesAsync(IIterable<StorePackageUpdate> const& storePackageUpdates);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<StorePackageUpdateResult,StorePackageUpdateStatus> RequestDownloadAndInstallStorePackageUpdatesAsync(IEnumerable<StorePackageUpdate> storePackageUpdates);
function requestDownloadAndInstallStorePackageUpdatesAsync(storePackageUpdates)
Public Function RequestDownloadAndInstallStorePackageUpdatesAsync (storePackageUpdates As IEnumerable(Of StorePackageUpdate)) As IAsyncOperationWithProgress(Of StorePackageUpdateResult, StorePackageUpdateStatus)

参数

storePackageUpdates

IIterable<StorePackageUpdate>

IEnumerable<StorePackageUpdate>

表示要下载和安装的更新包的 StorePackageUpdate 对象的集。

返回

一个 对象,调用方可以观察该对象,用于跟踪操作的进度和完成情况。 成功完成后,结果为 StorePackageUpdateResult 对象,该对象提供有关包更新的信息。

属性

例外

如果异常的 ErrorCode 属性具有值0x80070578 (ERROR_INVALID_WINDOW_HANDLE) ,则表示未在 UI 线程上调用该方法。 如果在使用 桌面桥的桌面应用程序中调用此方法,这可能还表示未配置 <xref:Windows.Services.Store.StoreContext?text=StoreContext> 对象,以指定哪个应用程序窗口是此方法显示的模式对话框的所有者窗口。 有关详细信息,请参阅此文章

注解

若要获取具有可用更新的包的列表,请使用 GetAppAndOptionalStorePackageUpdatesAsync 方法。 如果已使用 RequestDownloadStorePackageUpdatesAsync 下载包更新,则此方法将安装更新,而无需再次尝试下载更新。 有关使用此方法(包括代码示例)的详细信息,请参阅 下载并安装应用的包更新

此操作不会阻止。 此方法返回的 IAsyncOperationWithProgress 对象将在下载并安装更新包后完成。

调用此方法时,OS 会显示以下 UI:

  • OS 会显示一个对话框,告知用户应用更新可供下载,并要求用户获得继续下载的权限。 如果用户未授予开始下载的权限,StorePackageUpdateResult 返回值的 OverallState 属性具有值 Canceled

  • 下载更新的包后,OS 会显示另一个对话框,告知用户应用更新正在等待安装,并请求用户继续安装的权限。 此对话框警告用户应用可能需要重启。 如果用户未授予启动安装的权限,StorePackageUpdateResult 返回值的 OverallState 属性具有值 Canceled

显示下载和安装的进度信息

分配用于处理 进度 通知的方法对于此请求中每个包的下载和安装过程中的每个步骤调用一次。 Progress 处理程序接收 StorePackageUpdateStatus 参数,该参数提供有关引发进度通知的更新包的信息。

如果要显示向用户提供状态的自定义进度 UI (例如 ProgressBar) ,可以使用 StorePackageUpdateStatus 参数的 PackageDownloadProgress 字段来获取每个包下载和安装操作的当前进度,由 0.0 到 1.0 之间的值表示。 在下载过程中,此值从 0.0 增加到 0.8,然后在安装期间从 0.8 增加到 1.0。

因此,如果将自定义进度 UI 中显示的百分比直接映射到 PackageDownloadProgress 字段的值,请注意,当包下载完成后,UI 将显示 80%,并且 OS 会显示安装对话框。 如果你希望在程序包已下载并且可以安装时自定义进度 UI 显示 100%,则可以修改代码,以在 PackageDownloadProgress 字段达到 0.8 时将 100% 分配给你的进度 UI。

适用于

另请参阅