WebView2 をアプリに追加するには、開発マシンで WebView2 SDK を使用し、WebView2 ランタイムをユーザー コンピューターに配布します。
詳細な内容:
- 開発マシンとユーザー コンピューター上のコンポーネント
- プレビュー ランタイムを備えたプレリリース SDK または安定ランタイムを備えたリリース SDK
- WebView2 アプリの設計アーキテクチャ
- ユーザーのコンピューターにランタイムを配布、インストール、および更新する方法
- HTTP サーバーとの通信
- 関連項目
開発マシンとユーザー コンピューター上のコンポーネント
WebView2 をアプリに追加するには、開発マシンで WebView2 SDK を使用し、WebView2 ランタイムをユーザー コンピューターに配布します。
最上位レベルの WebView2 コンポーネント
| 短縮用語 | 説明 |
|---|---|
| アプリ | WebView2 コントロールのインスタンスを含む、任意のフレームワークまたはプラットフォーム用のすべてのアプリ。 アプリには、WebView2 コントロール インスタンスを使用する領域と、コントロールを使用しない他の領域を含めることができます。 |
| SDK | WebView2 SDK。 アプリの一部で WebView2 を使用する場合、そのコードは WebView2 コントロールのインスタンスと組み合わせてこれらの API を呼び出すことができます。 リリース SDK はユーザーに提供され、安定した API のみが含まれています。 プレリリース SDK は開発者のみが使用し、いくつかの実験的な API が含まれています。 |
| Control | WebView2 コントロールのインスタンス。 アプリでは、通常、Web コンテンツが含まれより長方形の領域として表示されます。 |
| ランタイム | ブラウザー エンジンである WebView2 ランタイム。 ユーザー コンピューターだけでなく、開発コンピューターおよびテスト コンピューターにもインストールされます。 |
| プレビュー チャネル | Microsoft Edge のプレビュー チャネル。ベータ版 (ほぼ安定版)、Dev、または Canary (最新ビルド、日次) のいずれかです。 開発マシンとテスト マシンのみの場合、ユーザー コンピューターには対応できません。 |
WebView2 コントロール、SDK、ランタイム
WebView2 コントロール、WebView2 SDK、WebView2 ランタイムには、次の役割があります。
| コンポーネント | 役割 |
|---|---|
| WebView2 SDK | 開発者がアプリのコードで使用する API を提供します。 アプリのコーディング中に Dev によってローカルで使用されます。 2 つのバージョン: ローカル開発テスト用のプレリリース SDK と、ユーザー向けに出荷可能なコードを開発するためのリリース SDK。 |
| WebView2 コントロール | WebView2 コントロールをアプリに埋め込みました。 ランタイムをホストします。Web コンテンツを表示する可視領域として機能します。 |
| WebView2 ランタイム | Dev のテスト マシンおよびユーザー コンピューター上。 または、プレリリース SDK を使用する場合、ランタイムを使用する代わりに、開発者はローカル テストに Microsoft Edge のプレビュー チャネルを使用できます。 |
WebView2 の高レベルのコンポーネントの図
次の図は、開発用コンピューターとユーザー コンピューター上の高レベルの WebView2 コンポーネントを示しています。
開発マシン
ここでは、上の図の左の列について説明します。
WebView2 アプリを開発するための開発マシンは、次のコンポーネントで構成されています。
Visual Studio プロジェクト - Visual Studio プロジェクト テンプレートを使用して標準プラットフォーム アプリを作成し、WebView2 SDK を NuGet パッケージとしてプロジェクトに追加します。
レイアウト デザイナー - Visual Studio でコントロールをレイアウトします。
WebView2 コントロール インスタンス - アプリの Web コンテンツ領域。 アプリの Web 側コードはこのコントロールで実行されます。
ネイティブ コントロール インスタンス - アプリのネイティブ コントロールとウィンドウ。
WebView2 SDK。
CoreWebView2、CoreWebView2Controller、CoreWebView2Environmentを含むプラットフォームごとの WebView2 API。 主にネイティブ側コードによって呼び出されます。AddHostObjectToScript- プラットフォーム API と WebView2 API を JavaScript コードに公開できるようにします。 ネイティブ コードと Web コードの相互運用を参照してくださいJavaScript API (WebView2Script パッケージ) - ホスト アプリケーションと通信するために Web 側コードによって呼び出されます。
プラットフォーム API - Web プラットフォームによって提供される WebView2 以外の API。Web 側コードによって使用されます。
WebView2 ランタイム - WebView2 API を含み、Web 側コードを実行する Microsoft Edge ブラウザー コンポーネント。
ユーザー コンピューター
ここでは、上の図の右列について説明します。
エンドユーザーのコンピューターには、WebView2 アプリの実行に関連する次のコンポーネントがあります。
ユーザーがインストールして使用しているホスト アプリ。
WebView2 ネイティブ コード: WebView2 API を使用するネイティブ コード。
Web コード: WebView2 コントロール インスタンスで実行される Web 側コード。
WebView2 コントロール インスタンス: WebView2 アプリの Web 側コードは WebView2 コントロールで実行されます。
WebView2 以外のネイティブ コード。
WebView2 以外の Web コード。
ネイティブ コントロール インスタンス。
WebView2 ランタイム。
プレビュー ランタイムを備えたプレリリース SDK または安定ランタイムを備えたリリース SDK
次のいずれかの組み合わせを使用します。
- WebView2 プレリリース SDK と、WebView2 プレビュー ランタイムを含む Microsoft Edge (Beta、Dev、または Canary) のプレビュー チャネル。
- WebView2 ランタイムと WebView2 リリース SDK。
| WebView2 SDK の種類 | レンダラー プラットフォーム | シナリオ |
|---|---|---|
| プレリリース SDK | Microsoft Edge (Beta、Dev、または Canary) のプレビュー チャネルに含まれている WebView2 プレビュー ランタイム | 開発用マシンで、今後の変更に対してアプリを実験およびテストする場合。 |
| リリース SDK | WebView2 の安定したランタイム | エンド ユーザーへのアプリの出荷用。 |
次の図に、次の概要を示します。
WebView2 プレリリース SDK:
- .NET/C# API (実験用 API を含む)。
- WinRT/C# API (試験的な API を含む)。
- 実験的な API を含む Win32/C++ API。
- WebView2Script パッケージ (JavaScript API)。
プレリリース SDK では、以下を含む Microsoft Edge のプレビュー チャネルを使用します。
- WebView2 プレビュー ランタイム。
- WebView2Script パッケージ (JavaScript API)。
WebView2 リリース SDK:
- .NET/C# API。
- WinRT/C#。
- Win32/C++。
- WebView2Script パッケージ (JavaScript API)。
リリース SDK では、WebView2 ランタイム (WebView2 Stable ランタイム) が使用されます。
- ランタイムには、WebView2Script パッケージ (JavaScript API) が含まれています。
NuGet から最新の SDK を定期的にダウンロードします。 NuGet リンクは 、WebView2 SDK のリリース ノートにあります。
SDK には、 WebView2Script パッケージ内の JavaScript API が含まれています。
関連項目:
- Evergreen と修正バージョンの WebView2 ランタイムのランタイム ダウンロード ページのオプションについて理解します。
- WebView2 用のプレリリースおよびリリース SDK
- アプリと WebView2 ランタイムを配布する
- WebView2 API リファレンス
Microsoft Edge のプレビュー チャネルでのプレリリース SDK と試験的 API の使用
試験的な API を使用してアプリのプレリリース バージョンを開発したり、今後の SDK の変更に対してアプリをテストしたりするには、次の手順を実行します。
- 開発用コンピューターの Visual Studio プロジェクトで、プレ リリース 版の
Microsoft.Web.WebView2SDK NuGet パッケージをインストールします。 実験的な API (および安定した API) を使用するコードを記述します。 - 開発用コンピューターに、Microsoft Edge のプレビュー チャネルをインストールして使用します。
プレリリース アプリをテスト マシンに配布するには、次の手順に従います。
- テスト コンピューターに Microsoft Edge のプレビュー チャネルをインストールします。
関連項目:
- WebView2 用のプレリリース SDK とリリース SDK - Microsoft Edge のプレビュー チャネルを備えたプレリリース SDK を使用するか、WebView2 ランタイムでリリース SDK を使用します。
ランタイムでのリリース SDK と安定した API の使用
アプリのリリース バージョンを開発するには:
- 開発用コンピューターの Visual Studio プロジェクトで、 リリース版 の
Microsoft.Web.WebView2SDK NuGet パッケージをインストールします。 安定した API のみを使用するコードを記述します。 - 開発マシンで、WebView2 ランタイム (SDK パッケージの一部) を使用します。
WebView2 ランタイムは、アプリのコンポーネントとして使用するためのブラウザー エンジンのようなものです。
アプリとランタイムをユーザーに配布するには、いくつかの方法があります。 上記の 「ユーザーのマシンにランタイムを配布、インストール、および更新する方法 」を参照してください。
関連項目:
- WebView2 用のプレリリース SDK とリリース SDK - Microsoft Edge のプレビュー チャネルを備えたプレリリース SDK を使用するか、WebView2 ランタイムでリリース SDK を使用します。
WebView2 アプリの設計アーキテクチャ
ホスト アプリには、次のカテゴリのコンポーネントが含まれています。
- ネイティブ コントロール インスタンス。
- WebView2 コントロール インスタンス。
ホスト アプリには、次のカテゴリのコードも含まれています。
- ネイティブ コード。ネイティブ プラットフォーム API を呼び出します。
- WebView2 API を呼び出すネイティブ コード。
- WebView2Script API、公開されたネイティブ API、および Web プラットフォーム API を呼び出す Web コード (JavaScript)。
ユーザーのコンピューターにランタイムを配布、インストール、および更新する方法
WebView2 ランタイムをアプリと共に配布するには、いくつかの方法があります。
WebView2 ランタイムを配布する方法
| 配布方法の名前 | 説明 | Notes |
|---|---|---|
| Evergreen Runtime ブートストラップへのリンク | アプリのインストーラーで、Evergreen Runtime ブートストラップにリンクします。 アプリのインストーラーがこのリンクを使用して、プログラムで Evergreen ブートストラップをユーザーのコンピューターにダウンロードしてインストールできるようにします。 次に、ブートストラップを呼び出して、ユーザーのデバイスに適切なランタイムをインストールします。 | オンラインに接続しているユーザー向け。 Evergreen ブートストラップは、インターネット接続を使用してユーザーの CPU に適したランタイムをインストールする小さなインストーラーです。 |
| Evergreen ランタイム ブートストラップをパッケージ化する | 開発マシンに Evergreen ブートストラップをダウンロードします。 アプリ インストーラーと共に Evergreen ブートストラップをパッケージ化して配布します。 次に、アプリ インストーラーはブートストラップを呼び出して、ユーザーのコンピューターにランタイムをインストールします。 | ブートストラップ CDN サイトへの信頼性の高い接続を持っていないユーザー向け。 |
| Evergreen Runtime スタンドアロン インストーラーをパッケージ化する | Evergreen スタンドアロン インストーラーを開発マシンにダウンロードし、アプリと一緒にパッケージ化します。 アプリのインストーラーと一緒に Evergreen スタンドアロン インストーラーをパッケージ化します。 次に、アプリのインストーラーは Evergreen スタンドアロン インストーラーを呼び出して、ユーザーのデバイスにランタイムをインストールします。 | オフライン ユーザーの場合。 オフラインユーザー向けの大規模なスタンドアロン Evergreen ランタイム インストーラー (Evergreen ランタイムが含まれています)。 |
| 固定バージョンのランタイムをパッケージ化する | バージョンおよび CPU 固有のランタイムを開発マシンにダウンロードします。 アプリのインストーラーと共に修正済みバージョンのランタイムをパッケージ化して配布します。 アプリのインストーラーは、ユーザーのコンピューターに特定の固定バージョン ランタイムをインストールします。 | 特定のバージョンの API が必要な場合の特殊なケース。最新の API を使用できるかどうかのテストを回避します。 |
上記の方法は、Microsoft Edge WebView2 ページの「WebView2 ランタイムのダウンロード」セクションと同じ順序で、軽量から重量級のアプローチまで記載されています。 軽量なアプローチを優先します。特殊なシナリオで必要とされる場合は、重いアプローチを使用します。
アプリのインストーラーとは 、アプリのインストーラー/アップデーターを意味し、アプリとは別でも、アプリの一部でも構いません。
関連項目:
- Evergreen と修正バージョンの WebView2 ランタイムのランタイム ダウンロード ページのオプションについて理解します。
HTTP サーバーとの通信
WebView2 コントロールは、ホスト アプリと HTTP サーバー間の通信の中継局として機能します。
関連項目
developer.microsoft.com:
- Microsoft Edge WebView2 - developer.microsoft.com での WebView2 機能の初期紹介。
WebView2 アプリ開発のリソース:
Microsoft Edge WebView2 の概要などのドキュメント。
ランタイム インストーラーのダウンロード ページ - Microsoft Edge WebView2 ページの「WebView2 ランタイムのダウンロード」セクションを参照してください。
NuGet SDK パッケージ ダウンロード サイト - NuGet.org で「 Microsoft.Web.WebView2 」を参照してください。
GitHub リポジトリとサポート:
WebView2Samples リポジトリ - 完成はじめに記事プロジェクト (最小限のコード) とコード豊富なサンプルが含まれています。