WebView 単語

ウェブビュー

3.1千文字の記事
これはリビジョン 2900708 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

WebViewとは、HTMLブラウズ機能を持つGUIパーツである。

割と一般的な名前のため同名のアプリがいくつかあるが、ここでは解説しない。

概要

アプリ開発ではボタンやチェックボックスなどのGUI部品を組み合わせてユーザーインターフェースを作るのだが、その際にWebViewという部品が使用できる。

内部にはChromeなどのブラウザと同じHTMLレンダリング(描画)エンジンが入っており、WebViewの部品内ではWebコンテンツと同じ手法(HTML + CSS + JavaScript)でインタラクティブなプログラムの製作が可能になる。

採用環境

Androidでは更新アプリ一覧に名前があがるので知っているユーザーもいるかもしれないが、他にもiOS・Windows・MacOSなどの各種プラットフォーム、JavaFX・FlutterなどのマルチプラットフォームGUIフレームワーク等に(若干名前にバリエーションはあるが)幅広く存在する。

使用しているエンジンは、AndroidではChromeと同じBlinkエンジンだが、他はSafariと同じWebKitを使用しているものが多い。が、元をたどれば同じだ。WindowsはEdgeのエンジンを使用していたが、EdgeがChromiumベースになってからは、WebView2という名前でBlinkエンジンを使用したWebViewが提供されるようになった。

ブラウザとの違い

ブラウザとの違いとしては、あくまでもGUI部品の一つなので、アプリ内の他の部品や機能と連携が可能という点である。ブラウザはセキュリティ上の問題からサンドボックスモデルを採用しているので、原則としてブラウザ内の要素からブラウザ外に働きかけることは出来ない。また、Androidのようにアプリの1つのような扱いになっている場合もあるが、あくまで部品でしかないので、これを単独で起動することもできない。

用途

極端な話をすれば、WebViewを一つだけウィンドウいっぱいに貼り付けてGoogleやYahoo! Japanのトップページを表示させただけで、世界シェアトップのブラウザであるGoogle Chromeに匹敵するHTML描画能力を持つブラウザアプリが製作出来てしまうと言っても過言ではない(もっとも既存ブラウザの丸パクリだし、機能も色々足りてないが)

実際のところは、WebViewを一つ貼り付けるだけというところまでは上記と一緒だが、SPA(Single Page Application)と呼ばれる1つのHTMLページだけでアプリの全機能をまかなうタイプのものを表示させるという使い方が多い。WebView外部とはハードウェアへのアクセスの際に連携するといった使い方になる。

たとえば、メルカリのようなフリーマーケットアプリでは次のような連携が想定できる。

  • 閲覧や購入機能はWebViewで
  • 品物を出品する際、写真を撮るときにカメラ機能と連携する

ゲームアプリ等の場合はマニュアル・ヘルプファイルをHTML文書として作成して、それを表示させるのに使うこともできる。同じ理屈でWebサイトにアクセスさせれば、「運営からのお知らせ」的なものの配信もできる。

メリットとデメリット

メリット

プラットフォーム環境の充実

プラットフォーム側としては、オープンソースになっているブラウザのレンダリングエンジンを取り込めば、タダで高機能のGUI部品を提供することができる。

開発コストの削減

アプリ開発者側としては、商用サイト構築などで大きな発展を遂げたWeb関連の開発技術・ライブラリをそのまま転用できるし、WebViewで表示させるHTML部分さえ書けば他のプラットフォームのWebViewに容易に移植できる。Webサイトに使用しているHTMLを流用することも考えられる。

ユーザー体験の向上

ユーザー側としては、各プラットフォームやWebページとの間で操作感が統一され、操作方法をいちいち覚え直さずに済む。また、製作コストの低下によりよりアプリの品質が向上するかもしれない。

デメリット

パフォーマンスの低下

ブラウザのエンジンを介することや、内部でスクリプト言語であるJavaScriptを使用していることなどにより、ネイティブアプリ開発を行った場合に比べると動作速度はやや遅くなる傾向がある。

ただし、ハードウェアの性能は年々向上しているので、体感速度には影響が出ないことも多い。

セキュリティ対応の負担

基本的にブラウザと同じなので、ブラウザと同じセキュリティホールを突かれる可能性がある。ネイティブ開発プラットフォームにも脆弱性問題は存在するのでWebViewに限ったことではないが、多機能だけにシンプルな部品を使用した場合には起きない予想外の組み合わせが発生する可能性もある。

また、利用人口が多いだけにブラウザのセキュリティホールに関する情報は多い。セキュリティホールを探す人口が多いからなのでWebViewの危険性が高いという話では必ずしもないが、セキュリティ情報へのフォローアップは負担になると考えられる。WebView自身で対策が行われるため気にしなくても大丈夫な場合も多いが、本体アプリや外部デバイスとの連携などにセキュリティホールがあった場合は当然アプリ側での対策が必要となる。

バージョンアップ対応の負担

WebViewのバージョンは各アプリではなくプラットフォーム側が管理している。最近のブラウザはローリングリリース方式を取るものが主流なので、WebViewもそれにあわせて自動アップデートを繰り返すことになる。結果として、アプリ側は変化していないのにWebView側が勝手にアップデートしてアプリが動かなくなるという、何もしてないのに壊れた的展開が起こることがある。

2021年3月23日午前に公開されていたAndroidのWebViewでは実際に不具合が発生し、WebViewに依存していた多数のアプリが突如異常終了を連発するなど、広範に亘って実害が発生してしまった。Google社が同日15時頃に更新版を配信開始し、異常終了は収まったものの、更新までの間に一時的対策として「WebViewの更新を削除して、プリインストール状態に戻す」というものが広まった関係でセキュリティ上の懸念が一部で浮上していた。

古いバージョンに戻せば確かに不具合は一時的になくなるが、同時にバージョンアップで蓄積されていたセキュリティ対策も全てなくなるということである。上記の通りさまざまなアプリで使われている部品であるため、あらゆるアプリが突然ノーガード同然となり、大変危険である。このため、たとえ大きな不具合があったとしても(特にOSの知識が無い場合は)不用意に古いバージョンに戻すべきではなく、オフィシャルによる更新を待つべきである。

Windowsでは各種コンポーネントの更新は小分けされたパッケージで配信されるため、仮にそういった不具合が見つかった場合は、一旦不具合を抱えた更新だけを取り消すという形で、リスクを最小限にしつつトラブルを回避できる。もちろん、不具合が解消された場合は速やかに更新をかけるべきなのは言うまでもない。

関連動画

関連項目

  • ブラウザ / Web / オープンソース
  • Safari / WebKit / Chrome / Blink
  • アプリ / ユーザーインターフェース / GUI
  • マルチプラットフォーム
  • Android / iOS / Windows / .NET / MacOS / JavaFX / Flutter
  • React
  • HTML / CSS / JavaScript
  • Gmail / LINE: WebViewを利用しているアプリ
  • プログラミング関連用語の一覧

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
[単語]

提供: 樹葉 緑

もっと見る

急上昇ワード改

最終更新:2026/02/01(日) 20:00

ほめられた記事

最終更新:2026/02/01(日) 20:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP