「C#凄い使いやすくて良い言語なんだけど、WebBrowserコントロールは残念だよなー、Trident最近頑張ってるんだけどWebkitとかに比べるとまだまだだよなー」とか常日頃から感じていたのですが、ふと「WebkitをC#から扱うためのラッパーとか探せばあるんじゃね?」という思いつきで「Webkit .net」とググってみると、ありましたありました、「Webkit.NET」というまんまなタイトルのプロジェクトが。オープンソース恐るべし。コンパイル済みのバイナリと共に、サンプルアプリがあったので実行してみました。
・・・なにこれ凄い。日本語も全く普通に通りますし、普通に使えそうです。というわけで自分でもテスト用にWinFormsプロジェクトを作って動かすテストをしてみたので、メモを残しておきます。
まず、WebKit.NETライブラリをWebKit .NET | Get WebKit .NET at SourceForge.netからDLしてきます。その中のbinフォルダ内のファイルがライブラリを構成しています。WebKitBrowser.dllがC#から参照するラッパーです。
まず、WebKitBrowserをツールボックスに追加してやります。ツールボックスのコンテキストメニューの「アイテムの選択」という項目をクリックします。
この際、ダイアログが表示されるまで、めちゃ重たいかもしれませんが、ぐっとこらえましょう。
そして参照ボタンをクリックして、WebKitBrowser.dllを選択してやれば、ツールボックスにWebKitBrowserが追加されます。
あとは普通にコントロールをポトベタしておわり…でもありません。。
まず、プロジェクトのプロパティから、プラットフォームターゲットをx86に設定します。Webkitは、現在、x86版のみ提供されているそうです。
続いて、デバッグのタブにある、「Visual Studio ホスティング プロセスを有効にする」という項目のチェックを外します。Visual Studioホスティングプロセスは、Visual Studioでのデバッグを効率化させるためのもののようですが、今回のようにアンマネージドコードを連携する場合は上手く働かず、エラーの原因になることがあるようです(Visual Studioホスティングプロセスの解説:VSホスト・プロセス(*.vshost.exe)とは何か?[VS 2005のみ、C#、VB] - @IT)。これが原因のエラーにぶつかって、@JZ5さんに助けを求めたところ、このオプションを教えていただけました。ありがとうございました。
こうしてビルドした上で、最後に仕上げに、ビルドして出来た実行ファイルやWebKitBrowser.dllと同じディレクトリに、Webkit本体であるWebkit.dllや、その依存するdll群を放り込みます。ビルド後のイベントでコピーするコマンドを発行してやると良いようです。
というわけで出来ました。よいよい。素晴らしい。DOM周りのメンバの実装が未だらしく、出来ることは結構限定されていますが、Monoでも動かせるようにしたいよねー、とREADMEに書かれていたりと、これからの進展に期待したいプロジェクトです。
Related Entries
Trackbacks : 2
- Trackback URL for this entry
- http://blog.sharplab.net/blog/2009/09/18/webkit-net%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f/trackback/
Listed below are links to weblogs that reference this entry
- Pingback from Blog書きました「Webkit.N… « P2 – SharpLab. 09-09-18 02:41:55 UTC
-
[...] Blog書きました「Webkit.NETを触ってみた」 http://blog.sharplab.net/computer/cprograming/3247/ ← Older Posts | Newer Posts → [...]
- Pingback from Webkit.NETのDOMをJavaScriptから操作する方法 - SharpLab. 09-09-18 15:50:34 UTC
-
[...] 前のエントリで紹介したWebkit.NETはまだC#などのコードからDOMにアクセスする方法は実装中であるため、正式には提供されていません。提供されているのは基本的なナビゲーションなどに [...]