ブロックチェーン・AI・システム開発の株式会社INDETAIL

AndroidのWebViewエンジン Crosswalkを使ってみた

2016.03.24
なめ橋

こんにちは。
なめ橋です。

札幌は雪解けがすすんで、もう路肩にしか雪がない状態です。今時期、本州では花粉症が猛威を振るっているようですが、北海道にはスギやヒノキがほとんどないので、花粉症の方は北海道に避難してみてはどうでしょう?

さて今回は、AndroidのWebViewエンジンである、Crosswalkを使ってみたいと思います。

Crosswalkとは

Crosswalkとは、AndroidやCordoba・TizenOSやiOSなど、さまざまなプラットフォームに組み込む事のできるWebViewのエンジンです。

特にAndroidだと、Android4.3以前とそれ以降では、WebViewのレンダリングエンジンが異なります。そのため、Android4.3以前と以降で、WebViewを使用した際の表示速度や挙動などが異なる恐れが発生してきます。しかも、Googleが提供しているWebViewの脆弱性サポートも4.3以前は打ち切っているため、セキュリティ上も不安が発生してきます。

そんな不安を解消するために、WebViewのエンジンそのものをアプリに組み込んでしまい、Android4.3以前のOSでも4.4以降と同様のパフォーマンスを提供してくれるのが、今回紹介するCrosswalkです。

導入方法

まずは、プロジェクトにCrosswalkを導入してみましょう。今回はmavenリポジトリから落としてきます。

Mavenリポジトリはこちら

以下のように記載して、syncをタップすれば自動的にプロジェクトに導入してくれます。

xmlに組み込む

では、次にxmlにCrosswalkのレイアウトを組み込んでみましょう。
Crosswalkで使用するWebViewは"XWalkView"という名前になります。

これで、レイアウトファイルへの導入はOKです。
ちなみに、manifestファイルへ、インターネットへのアクセス権限の許可(uses-permission)を記載するのを忘れずに!

javaに組み込む

では、最後に実際にコードを書いてみましょう。
といっても難しいコードではなく、xmlに定義したxwebViewをfindbyidで変数に当て込むだけです。

ちなみに、CrosswalkのWebViewを使用する際は各ライフサイクルで、一時停止処理や破棄処理を行う必要があるので気をつけてください。

また、標準のWebViewClientのような、webページの読み込み開始や終了などを検知する機構(XWalkUIClientなど)もあるので、
一度WebViewを触ったことのある人であれば、比較的わかりやすい作りとなっております。

いかがだったでしょうか。
ネイティブのみの開発でWebViewを多用するようなアプリであれば、OSに寄る差異をなくすことができるため、開発の要件にAndroid4.3未満の端末が入っているようであれば、導入するのに一考の余地があるかと思います。

参考URL

Crosswalk
API
WebViewの脆弱性サポートについて

なめ橋

2013年4月に入社。 最近ようやくiOSの開発に慣れてきた新人のエンジニアです。 髪が長くなるとなめこに似ているといわれます。

「いいね」ボタンを押すと、最新情報をすぐに確認できます。