StoreContext.RequestDownloadAndInstallStorePackageUpdatesAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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
表示要下载和安装的更新包的 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。