web-dev-qa-db-ja.com

AndroidアプリにChromiumまたはWebkitを埋め込み

Androidアプリの場合、独自のブラウザ/レンダリングエンジンを埋め込みたいと思います。これの最も可能性の高い候補は、 Webkit / Chromium =。私たちは WebView に似たものを探していますが、本質的には、私たちが制御するブラウザ(バージョン)に支えられています。

バックグラウンド

アプリの重要な部分は、ビューに埋め込まれたWebページのフラグメントで構成されます(アプリ自体によって提供されます)。できる限り透過的にこれを行うようにします(視覚/ユーザーエクスペリエンスの観点から)。これまで、これに WebView を使用してきましたが、ほとんどの場合は機能します。そうでない場合を除きます。

一部の携帯電話ベンダーは、残念ながら標準のAndroidブラウザをあちこちで調整することにしました。場合によっては、これによりアプリが壊れたり、Webページを埋め込んだ事実がより顕著になります。

私たちのアイデア

WebView に似たコンポーネントが必要ですが、使用するWebkit/Chromium(または他のレンダリングエンジン)のバージョンを制御します。必ずしも最新で最高のバージョンである必要はありません。できるだけ多くのAndroidデバイスでアプリを一貫して動作させることができることがより重要です。

これまでのところ

これまでの研究では、有用なものは見つかっていません。 Webkitを [〜#〜] ndk [〜#〜] (Android portの裸のWebkitは、 NDK、つまりアプリ開発者ではない):

StackOverflowを見ると、同様の質問がいくつか見つかりました。そのほとんどは、WebViewをポイントすることで解決されます(既にそれを行っていますが、十分ではありません)

Chromium for Android (またはその一部)をアプリで使用できるライブラリに変換できるかどうかを現在調査中です。他の誰かがこれをしましたか?

更新

GitHubのchromeviewプロジェクト(受け入れられた答え)を見て、Googleが将来のAndroidデバイス。ChromiumレンダリングエンジンでChromeベースのWebViewをリリースするのを待つことを決定しました。かなり大きい(〜40MB)ことが判明しますが、実際のアプリ用のスペースはあまりありません:(

48

pwnall/chromeview・GitHub https://github.com/pwnall/chromeview

ChormeViewはAndroidのWebViewと同じように機能しますが、最新のChromiumコードに支えられています。

12
Satoshi Deguchi

すべてCrosswalkプロジェクトをチェックアウトする必要があります。 Intelがスポンサーであり、開発中です。彼らはChromiumのソースを引き出し、6週間以内にすべての新しいChromium機能をCrosswalkで利用可能にすることを約束します。

Crosswalkは、野心的なHTML5アプリケーション用のWebランタイムです。最新のブラウザのすべての機能に加えて、深いデバイス統合とネイティブ拡張を追加するためのAPIが組み合わされています。モバイルデバイスに特に適しています。

Crosswalkは、Android 4.0以降、ARMおよびIntelアーキテクチャで。

このプロジェクトを見つけて1時間以内に、Cordova/PhonegapアプリをCrosswalkを使用してAndroid電話で実行しました。Javascriptコードを調整して、 (4.4より前の)Android.webkit.WebViewの欠点。

https://crosswalk-project.org

10
flo von der uni

WebKitがなければ、 GeckoView があります。確かに、プロジェクトに20Mb以上のライブラリが追加されます。

4
Gintas

Chromiumの最新のコードバージョンを使用してカスタムWebViewを構築しようとしましたが、成功しました。

ここでは、ソースコードではなく、アプローチを説明します。

最終的に、カスタムWebViewライブラリのサイズは約30MBで、一部の小さなアプリではかなり大きくなります。しかし、Android 4.0。

これは私の方法です:

  • クロムのソースコードを取得し、web_view_apk(AndroidWebViewテストシェル)をビルドし、この指示に従います https://www.chromium.org/developers/how-tos/Android-build-instructions

  • apktoolを使用して、上記のAw Shellのapkファイルを逆コンパイルします。 https://ibotpeaches.github.io/Apktool/

  • 逆コンパイルしたプロジェクトと同じように、res、libフォルダーでプロジェクトを作成します。

  • マニフェストファイルは/ src/Android_webview/test/src/org/chromium/Shellにあります

  • srcフォルダー:Chromプロジェクトのソースコード内のクラスは、それぞれ逆コンパイルされたプロジェクトのsmaliフォルダー内のファイルです。

後でコードを更新しますが、待ちたくない場合は、今すぐガイドを試すことができます。

2
Ken

現在、GeckoViewは検討する代替手段のようです

1
Javier Antón
0
Oded Breiner