WebView2 SDK は、 Microsoft.Web.WebView2 NuGet パッケージのプレリリース版またはリリース版として提供されます。 Microsoft Edge のプレビュー チャネルでプレリリース SDK を使用するか、WebView2 ランタイムでリリース SDK を使用します。
プレリリース SDK パッケージは、これらの API のサポートがランタイムに追加される前に、試験的な API を含む最新の WebView2 API をテストする場合に開発中に使用します。 Canary チャネルは、最新の API の実装が含まれているため、お勧めです。 実験的な WebView2 API をテストして使用する場合は、次の組み合わせを使用します。
- WebView2 SDK の プレリリース 版。
- 開発用クライアント上の Microsoft Edge の プレビュー チャネル 。
リリース SDK パッケージには安定した API のみが含まれ、試験的な API は含まれません。 WebView2 アプリの製品版リリースに取り組むときは、次の組み合わせを使用します:
- WebView2 SDK の リリース バージョン。
- 開発用クライアントの WebView2 ランタイム 。
プレリリースとリリース SDK パッケージの詳細については、以下をご覧ください。
API 導入のフェーズ
新しい API は、次のように段階的に導入されます。
| API の状態 | 説明 |
|---|---|
| プレリリース SDK での試験的機能 | 1. まず、API はプレリリース SDK で試験的です。 (場合によっては、API が試験段階をスキップして、プレリリース SDK の安定版に直接追加されます)。これらの API をテストして、フィードバックを提供できます。 この API はまだリリース SDK に含まれていません。 |
| プレリリース SDK で安定 | 2. その後、API はプレリリース SDK で安定版に昇格されます。 この API はまだリリース SDK に含まれていません。 |
| リリース SDK で安定 | 3. その後、Stable API がリリース SDK に含まれるように昇格されます。 (場合によっては、API がプレリリース SDK で安定版に、リリース SDK で安定版に同時に昇格されることがあります)。これは通常、プレリリース SDK で API が安定版に昇格してから 1 か月後に発生します。 この API はプレリリース SDK にも残ります。 |
関連項目:
- 「WebView2 SDK のリリース ノートについて」での API の追加フェーズ。
使用する SDK の種類の選択
Visual Studio プロジェクトで使用する WebView2 SDK NuGet パッケージのバージョンを選択するには、Visual Studio でプロジェクトを右クリックし、[ NuGet パッケージの管理] を選択し、[ プレリリースを含める] チェック ボックスをオンまたはオフにして、 Microsoft.Web.WebView2 パッケージを選択し、[ バージョン] ドロップダウン リストで Microsoft.Web.WebView2 NuGet パッケージのバージョンを選択します。
詳細については、「WebView2 の開発環境をセットアップする」の「WebView2 SDK のインストールまたは更新」を参照してください。 Microsoft.Web.WebView2 SDK パッケージの一覧は、NuGet サイトで表示することもできます。
プレリリース版の SDK を Microsoft Edge のプレビュー チャネルと共に使用する
エバーグリーン WebView2 アプリを開発する場合は、WebView2 ランタイムに対するテストに加えて、最新の Microsoft Edge プレビュー チャネルに対してアプリを定期的にテストします。 Web プラットフォームは常に進化しているため、アプリが引き続き意図したとおりに動作することを確認するには、定期的なテストが最善の方法です。
WebView2 プレリリース SDK パッケージを使用する場合は、開発クライアントで Microsoft Edge プレビュー チャネルを使用します。 プレビュー チャネルは、 Insider チャネルとも呼ばれます。 Canary は最新で、最新の試験的 API が実装されているため、Beta や Dev ではなく Canary プレビュー チャネルをお勧めします。
プレリリース SDK パッケージは、リリース SDK パッケージのスーパーセットです。 プレリリース SDK には、次のメソッド シグネチャが含まれています。
- 実験的 API。
- 試験的ではなくなったが、リリース SDK にまだ含まれていない安定した API。
- リリース SDK に追加された安定した API。
Microsoft Edge のプレビュー チャネルでは、実験的な WebView2 API と安定した API の実装が提供されます。 試験的な API は、フィードバックに基づいて変更される可能性があります。 プレリリース SDK パッケージを使用して運用環境アプリをビルドしないでください。
WebView2 ランタイムを既定で使用するのではなく、アプリをプレビュー チャネルに一時的にポイントする方法については、「 プレビュー チャネルに切り替えて、今後の API と機能をテストする」を参照してください。
関連項目:
- WebView2 ランタイムのエバーグリーン バージョンと固定バージョン
- Microsoft Edge のプレビュー チャネルを使用したリリース前テスト
- プレビュー チャネルをデプロイすることによるセルフホスト
SDK のリリース バージョンをランタイムと共に使用する
WebView2 リリース SDK パッケージを使用する場合は、Microsoft Edge プレビュー チャネルではなく、開発クライアントで Evergreen WebView2 ランタイム を使用します。 既定では、WebView2 アプリは Microsoft Edge ではなくランタイムを対象とします。 仕様により、Microsoft Edge 安定チャネルは WebView2 をサポートしていません。
リリース SDK パッケージには、運用リリースにあるすべての安定 API が含まれており、試験的 API のメソッド署名は含まれません。 リリース SDK パッケージに含まれるすべての API は、WebView2 ランタイムと同じかそれ以上のビルド番号で完全にサポートされます。
関連項目:
Evergreen ランタイムの自動更新の詳細については、次を参照してください。
リリース サイクル
参照:
- 「WebView2 SDK のリリース ノートについて」のリリース サイクル。
- Microsoft Edge リリース スケジュール
WebView2 をインスタンス化するための最小バージョンとビルド番号
クライアントが WebView2 インスタンスを作成し、WebView2 一般提供リリース (SDK ビルド 616) の API セットを使用できるようにするには、クライアントに WebView2 ランタイム バージョン 86.0.616.0 以降が必要です。 ランタイム 86.0.616.0 は、一般提供リリースであるため、特別リリースです。
開発マシンでは、クライアントには、Microsoft Edge プレビュー チャネル バージョン 86.0.616.0 以上、または WebView2 ランタイム バージョン 86.0.616.0 以上が必要です。
API の上位互換性
WebView2 リリース SDK は、バージョン 1 (WebView2 SDK のアーカイブされたリリース ノートのランタイム 86 (2020 年 10 月 19 日用のリリース SDK 1.0.622.22) ) 以降、前方互換性があります。 WebView2 アプリを更新して、SDK の最新リリース バージョンの最新の API を使用できます。 クライアントには最新の Evergreen WebView2 ランタイムが自動的に用意されているため、アプリは引き続きクライアント上で動作します。
リリース SDK パッケージ内の WebView2 API は安定しており、前方互換性があります。 WebView2 API は、API が導入された SDK ビルド番号と同じかそれ以上のビルド番号を持つ WebView2 ランタイムを使用している場合に機能します。 ビルド番号は、Webview2 SDK の 4 つの部分から成るバージョン番号の 3 番目の部分、および Microsoft Edge と WebView2 ランタイムの 4 つの部分から成るバージョン番号のうちの 3 番目の部分です。
ビルド番号が WebView2 ランタイム 以下 である WebView2 SDK を使用する場合、その SDK でアクセスできるすべての API は、そのバージョンのランタイムで動作します。
ビルド番号が WebView2 ランタイム より大きい WebView2 SDK を使用する場合、新しい API の実装はランタイムでは使用できません。
たとえば、API が SDK 1.0 で導入された場合です。900.0 の場合、その API はランタイム 94.0 で動作します。900+.0 ですが、ランタイム 90.0 では使用されません。700.0。
開発に使用する WebView2 SDK のバージョンと、クライアント コンピューターにインストールされている WebView2 ランタイムのバージョンを調整する必要があります。 クライアントには、アプリの開発に使用する SDK バージョンにあるすべての最新の API をサポートするランタイムのバージョンが必要です。 SDK のリリース バージョンで最新の API を完全にサポートするには、クライアントのランタイムのビルド番号が SDK のビルド番号以上である必要があります。
試験的 API
開発中の今後の新機能を試すには、 試験的な API を使用します。 試験的な API はプレリリース SDK に含まれていますが、リリース SDK には含まれません。
実験的な API を使用した開発とフィードバックの提供
WebView2 プレリリース SDK パッケージ内の試験的な API は、上位互換性が保証されていないため、将来のランタイム更新プログラムで削除される可能性があります。
試験的 API を完全にサポートするには、Evergreen WebView2 ランタイムではなく、Microsoft Edge プレビュー チャネルを使用してください。 WebView2 SDK のプレリリース バージョンが最初に利用可能な場合、その SDK は Microsoft Edge Canary でのみ機能します。 その後まもなく、プレリリース SDK はベータ チャネルと Dev チャネルでも機能します。
プレリリース SDK を使用して、新しい試験的 API を早期に試し、試験的な API が安定した上位互換性のある API に昇格する前にフィードバックを提供します。
- (プレリリース SDK 内の) 試験的な API は、前方互換性が保証されていません。
- プレリリース SDK に含まれる Stable API は、リリース SDK にまだ含まれていない場合でも、上位互換性があります。
- リリース SDK に含まれる Stable API には上位互換性があります。
詳細については、上記の 「API の上位互換性」を参照してください。
WebView2 チームは、将来のリリースで安定版に昇格される可能性のある試験的な WebView2 API に関するフィードバックを求めています。 実験的な API は、WebView2 SDK リファレンス ドキュメントで次のような "実験段階" と示されています: "注: これは、プレリリース SDK に付属する試験的な API です。"
実験的な API を評価してフィードバックを共有するには、 WebView2Feedback リポジトリをご利用ください。
関連項目:
実験的 API から安定した API への移行
API が試験段階から安定状態に移行したら、アプリのコードを安定 API に移行する必要があります。 運用アプリでは、実験的 API またはプレリリース SDK の使用はお勧めできません。 アプリを試験的 API の使用から安定した API に移行する場合は、次の手順に従ってください:
Visual Studio のプロジェクトで、WebView2 SDK パッケージのバージョンを新しいプレリリース SDK またはリリース SDK に更新します。 「WebView2 の開発環境をセットアップする」の「WebView2 SDK のインストールまたは更新」を参照してください。
(COM 用の) 実験用 API ではなく安定した API を使用するようにアプリのコードを更新します。 Stable API はバグ修正でサポートされますが、Experimental API は非推奨となり、新しい (プレリリースまたはリリース) SDK では使用できなくなります。 API が Stable に昇格すると、その API の試験的バージョンは、非推奨の状態でプレリリース SDK の 2 つのリリースでサポートされます。 プレリリース SDK の以降のバージョンでは、試験的な API が変更、削除、または追加される場合があります。
常に機能検出を使用して、Stable API がユーザー バージョンの WebView2 ランタイムに実装されていることを確認してください。 インストール済みのランタイムが最近追加された API をサポートしているかどうかを確認するには、以下の「機能検出」を参照してください。
.NET のみに関する注意: プレリリース WebView2 SDK では、ユーザーの WebView2 ランタイムに試験的な API 実装のみがあり、安定した API 実装がない場合、.NET 安定した API は対応する実験的な API にフォールバックします。
ランタイム バージョンと SDK バージョンの一致
Evergreen 配布アプローチでは、クライアントの WebView2 ランタイムは利用可能な最新バージョンに自動的に更新されます。 ただし、ユーザーまたは IT 管理者は、WebView2 ランタイムの自動更新を禁止することもできます。 結果として生じるクライアント上のランタイムが古くなると、最近の SDK の新しい API を使用する更新済みの WebView2 アプリとの互換性の問題が発生する可能性があります。
クライアントで WebView2 ランタイムの更新ができない場合は、アプリに必要な WebView2 ランタイムの最小ビルド番号を知っていることを確認してください。 最新の WebView2 ランタイム バージョンを表示または取得するには、「developer.microsoft.com にある Microsoft Edge WebView2 ページで WebView2 ランタイムをダウンロードする」を参照してください。 SDK (ビルド 616) の一般提供リリースをサポートするために必要な最小ランタイム バージョンは、最新のランタイムよりも古くなっています。 最新のランタイムは、最新のリリース SDK に含まれるすべての API をサポートしています。
SDK の特定のビルド番号とランタイムまたは Microsoft Edge プレビュー チャネルの間の互換性をチェックするには、WebView2 のリリース ノートを参照してください。
インストール済みのランタイムが最近追加された API をサポートしているかどうかをテストする機能検出
アプリで固定バージョンではなく Evergreen ランタイムを使用する場合は、 QueryInterface または try-catch を使用して比較的新しい WebView2 API への呼び出しをラップする必要があります。 クライアントの Evergreen ランタイムが最新のビルドではないため、管理が WebView2 ランタイムの更新を一時的に抑制したか、クライアントがオフラインである可能性があるため、SDK ビルド番号より遅れているという、エッジ ケースがあります。
最新バージョンの WebView2 SDK を使用して WebView2 アプリを開発する場合、最近追加された API を使用する場合は、その API がクライアントのインストール済み WebView2 ランタイムに存在するかどうかをテストまたは「機能検出」する必要があります。 アプリで API サポートをプログラムでテストする方法は、コーディング プラットフォームによって異なります。
.NET と WinUI、WinRT
WebView2 SDK のより新しいバージョンに追加されたメソッド、プロパティ、イベントを使用する場合は、No such interface supported例外に try/catch と チェック を使用します。 この例外は、クライアントの WebView2 ランタイムが、その API をサポートしていない古いバージョンであることを示している可能性があります。
Win32 C/C++
DLL エクスポート CreateCoreWebView2Environmentを要求するときに、任意の CoreWebView2 オブジェクトに対して QueryInterface を実行するときに、戻り値 E_NOINTERFACE をテストします。 この戻り値は、クライアントの WebView2 ランタイムが、そのインターフェイスをサポートしていない古いバージョンであることを示している可能性があります。
ランタイムに特定の WebView2 API が存在するかどうかを確認する例については、AppWindow.cpp でtry_queryを検索してください。 このファイルは、CheckFailure.h で定義された CHECK_FAILURE マクロ関数で WebView2 API 呼び出しをラップします。
正常なフォールバックを提供する
クライアントのインストールされている WebView2 ランタイムで API が使用できないとコードで判断した場合は、関連する機能の適切なフォールバックを提供するか、機能を使用するには WebView2 ランタイムを更新する必要があることをユーザーに通知する必要があります。
関連項目
- 「WebView2 用の開発環境を設定する」で WebView2 SDK をインストールまたは更新します。
- WebView2 展開サンプル
- WebView2 ランタイムのエバーグリーン バージョンと固定バージョン
- アプリと WebView2 ランタイムを配布する
- プレビュー チャネルに切り替えて、今後の API と機能をテストする
- Microsoft Edge のプレビュー チャネルを使用したリリース前テスト
- プレビュー チャネルをデプロイすることによるセルフホスト
- 「WebView2 SDK のリリース ノートについて」での API の追加フェーズ。
- WebView2 のリリース ノート
- WebView2 API リファレンス
- WebView2 SDK のアーカイブされたリリース ノートに、ランタイム 86 (2020 年 10 月 19 日) 用の SDK 1.0.622.22 をリリースします。
Microsoft Edge エンタープライズのドキュメント:
ダウンロード:
GitHub:
- WebView2Feedback リポジトリ。