Android アプリには、独自のブラウザー/レンダリング エンジンを組み込みたいと考えています。これの最も可能性の高い候補はWebkit / Chromiumです。基本的にWebViewに似たものを探していますが、制御するブラウザー (バージョン) によってサポートされています。
バックグラウンド
アプリの重要な部分は、ビューに埋め込まれた Web ページのフラグメントで構成されています (アプリ自体によって提供されます)。これを可能な限り透過的に行うようにしています (視覚的/ユーザー エクスペリエンスの観点から)。これまでのところ、これにはWebViewを使用しており、それはほとんどの場合機能します。そうでない場合を除いて。
一部の電話ベンダーは、残念ながら、標準の Android ブラウザーをあちこちで微調整することにしました。場合によっては、これによりアプリが壊れたり、Web ページを埋め込んだことがより目立つようになります。
私たちの考え
WebViewに似たコンポーネントが必要ですが、使用されている Webkit/Chromium (またはその他のレンダリング エンジン) のバージョンを制御します。必ずしも最新かつ最高のバージョンである必要はありません。アプリをできるだけ多くの Android デバイスで一貫して動作させることがより重要です。
ここのところ
これまでの調査では、有用なものは何も見つかりませんでした。Webkit をNDKに移植しようとする 3 つの失敗した試みが見つかりました (裸の Webkit for Android 移植では、NDK で利用できない機能が使用されているため、アプリ開発者は利用できません)。
- Company 100 による Webkit Android ポート(2 年以上更新なし)
- mogo-browser (彼らの最後のリビジョンは、すべてのソース コードを削除することでした)
- NDK Webkit (作成者によって正式に放棄されました)
StackOverflow を見ると、同様の質問がいくつか見つかりました。そのほとんどは、WebView を指定することで解決されています (既に行っていますが、十分ではありません)。
現在、Android 用 Chromium (またはその一部) をアプリで使用できるライブラリにできるかどうかを調査しています。他の誰かがこれをしましたか?
アップデート
GitHub の chromeview プロジェクト (受け入れられた回答) を見た後、Google が将来の Android デバイスで Chrome ベースの WebView をリリースするのを待つことにしました。Chromium レンダリング エンジンはかなり大きい (~40MB) ため、実際のアプリにはあまりスペースがありません :(