昨年のプレビューリリース公開を経て、Microsoftは先頃、ネイティブWindowsアプリケーション内にWebコンテンツをホストするためのChromiumベースのコントロールであるWebView2を、Win32 C/C++、.Net Framework、.NET Core、.NET 5による運用レベルのアプリケーション向けに一般公開した。WebView2はアップデートポリシの異なる(自動または手動)2つのディストリビューションモデル(evergreenとfixed)で提供される。
ネイティブWindowsアプリケーションにWebView2をエンベッドする理由について、Microsoftは次のように説明している。
開発者はしばしば、Webアプリケーションとネイティブアプリケーションのどちらを開発するか、選択を迫られます。リーチとパワーの間のトレードオフとして、この判断は非常に重要です。Webアプリケーションは広範なリーチが可能です。[...] 一方でネイティブアプリケーションでは、プラットフォームのネイティブな機能をすべて利用することができます。ハイブリッドアプリケーションは、この2つの世界のよい部分を活用することを可能にします。ハイブリッドアプリケーションの開発者は、Webプラットフォームの普遍性と強みと、ネイティブアプリケーションのパワーとフル機能を享受できるのです。
WebView2によって、Webテクノロジを備えた完全なWindowsアプリケーションを構築することと、独自のWebベースのアプリ要素あるいはPWAをアプリケーションに組み込むことが、どちらも可能になる。Webコード(HTML/JavaScript/CSS)を使うことで、膨大な既存アプリケーション、コンポーネント、そして開発者ベースを再利用することができるのだ。例えば、Microsoftの新しいFASTフレームワークライブラリのWebコンポーネントの利用が可能になる。
WebViewを部分的に使用したアプリケーションの構築には、ホストとWebコンテンツ間でさまざまなレベルのコミュニケーションやコーディネーションが必要になる。ブラウザスレッド間で通信する場合のように、WebコンテンツとWindowsホストの間のコミュニケーションにはpostMessage
API(具体的にはwindow.chrome.webview.postMessage
メソッド)を使用する必要があるのだ。異なる方向のコミュニケーションは、window.chrome.webview.addEventListener
メソッドを使ってリスナをWeb側に登録することで実現する。双方向コミュニケーションは、ホストとWebサイド間の会話機能を提供することによって、例えばWebコンテンツがホストのネイティブAPIをすべて使用できるようにする。
WebView2はevergreenとfixedという2つのバージョンで提供される。evergreen WebView2バージョンは、Microsoftによって自動かつ定期的(6週毎)にアップデートされるが、fixedバージョンは特定バージョンのWebView2 Runtimeをパックしており、必要な場合は手動でアップデートしなければならない。evergreenバージョンはフラグメンテーションを削減することで、開発者が最新のWeb APIにアクセスできることを意図したものであり、fixedバージョンは互換性を厳格に要求されるアプリケーションのためのものだ。
MicrosoftはWebView2がサポートするプラットフォームの一覧を発表している。
- Windows 10
- Windows 8.1
- Windows 7 **
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012
- Windows Server 2012 R2
- Windows Server 2008 R2 **
WebView2を使用してみたい開発者は、まず"WebView2 getting started tutorial"を確認した上で、WebView2の資料を読む必要がある。さらに、包括的なサンプルがオンラインで提供されている。WebViewチームでは、将来のWebViewリリースへの改良に向けてフィードバックを募集している。