StoreContext.RequestDownloadAndInstallStorePackageUpdatesAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
ダウンロードおよびインストールする更新されたパッケージを表す 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 になります。
ダウンロードとインストールの進行状況の情報を表示する
進行状況通知を処理するために割り当てるメソッドは、この要求の各パッケージのダウンロードおよびインストール プロセスの各ステップに対して 1 回呼び出されます。 Progress ハンドラーは、 進行状況 通知を発生させた更新プログラム パッケージに関する情報を提供する StorePackageUpdateStatus 引数を受け取ります。
ユーザーに状態を提供するカスタム進行状況 UI (ProgressBar など) を表示する場合は、StorePackageUpdateStatus 引数の PackageDownloadProgress フィールドを使用して、各パッケージのダウンロードおよびインストール操作の現在の進行状況を取得できます(0.0 から 1.0 までの値で表されます)。 この値は、ダウンロード中に 0.0 から 0.8 に増加し、インストール中に 0.8 から 1.0 に増加します。
そのため、カスタム進行状況 UI に表示される割合を PackageDownloadProgress フィールドの値に直接マップする場合は、パッケージのダウンロードが完了し、OS にインストール ダイアログが表示されるときに UI が 80% 表示されることに注意してください。 パッケージがダウンロードされ、インストールの準備ができたときに、カスタム進行状況 UI で 100% と表示するには、PackageDownloadProgress が 0.8 に達したときに進行状況 UI に 100% を割り当てるようにコードを変更します。