クールな Windows 8.1 New API #1: WebView for HTML

皆様、こんにちは!

Prism for Windows Runtime の連載を準備中ですが、並行して、こちらのガイドが出たので、新しいWindows 8.1 新しいAPIを一つずつご紹介していくシリーズを開始したいと思います。

Windows 8.1 Preview 製品ガイド (開発者向け)

image

今回の#1は、下記のセクションにある、WebView コントロール についてご紹介します。

---

WebView コントロール

WebView (英語) は、JavaScript 開発者にとって新しい機能であり、アプリ モデル間で類似の実装を共有します。WebView コントロールは、単なる簡単な<iframe>をはるかに超えて、ナビゲーション (戻る、進む、停止、再読み込みなど) をサポートし、タッチ入力に対するサポートが向上しています。

https://msdn.microsoft.com/ja-jp/library/windows/apps/bg182879.aspx#webview

---

HTML/JavaScript の開発者の方にとって、最も重要な Windows 8.1 Previewでの追加機能の特徴は、 x-ms-webview エレメントが HTML に追加されたことです。いままで、XAML を使って開発をしたことがない場合、この WebView こそが、自由自在に HTML、CSS、そしてJavaScript をレンダリングするコントロールです。

※ これは Web コンテンツ を自由に、https:// ソースから生成できます。また動的に生成された、あるいは、ローカルの HTML ファイル (CSS、JavaScript を含む)からも生成可能です。XAML の方は既に WebView コントロールが(それこそ WPF の頃から)存在しています。詳しくは、下記のWindows 8 ドキュメントをご参照ください。

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.webview.aspx

またこのコントロールにより、当該ストアアプリで、WebView とWebView の間でスクリプトを呼び出して、 イベントを発生させることができます。もちろん、このような処理のいくつかは、Windows 8 の iframe 要素を使って実現可能です。しかし、iframe には数多くの制約があります。たとえば、もしホストしようとしている当該サイトが frame 破壊的なコードを含んでいた場合は厄介です。HTML/JavaScript アプリケーションはまた、ダウンロード済み、あるいは、ローカルで生成された HTML/CSS/JavaScript を単一の iframe にロードする機能を持ちません。また、 iframe を bitmap にレンダリングすることもできません。しかし幸運なことに、上記のすべてをこの WebView を使って実現可能なのです。

このあたりについて詳しくはPDFでダウンロードできる書籍の、”Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition”、特に Chapter 4 をご覧ください。

更に参考になるのは、Build 2013 の John Hazenのセッションです :

Webview: bringing the web to your app

image

以上です。いかがでしょう?次回は#2として、Windows.Web.Http.HttpClient をご紹介予定です。

鈴木 章太郎