web-dev-qa-db-ja.com

Android phonegap / cordovaアプリがChrome webviewsを使用していることを確認するにはどうすればよいですか?

「おじさん」と叫ぶまでSVGグラフィックスをひねるゲームアプリを書いています。このプログラムは、iPad(safari/webkit)でWebサーバーからホストされている場合は正常に機能します。ここではこれ以上説明する必要はありません。また、Androidの最新バージョン(v.25以降など)が使用されている限り、ChromeタブレットでWebサーバーからホストされている場合でも問題なく動作します。

このプログラムはインターネットにまったくアクセスしませんが、そのSVGグラフィックスで再生し、Javascriptを実行し、HTML5 localStorage()にステータスを保存します。

古いAndroidタブレットの「デフォルトブラウザ」でプログラムを実行すると、SVGグラフィックスが正しく処理されないため、タブレットのChromeの最新バージョンに対する要件があります。

アプリ用のAPKを作成しましたが、本当に新しいChromeタブレットにインストールしたときに、Androidブラウザーを使用していないことがわかりました。むしろ、APKに埋め込まれた、またはタブレットに残っているライブラリが存在するAPKから少なくとも呼び出されたブラウザを使用しているようです。

APKの目的は、最近のWebkitブラウザーでコードを表示することです。これは、Chrome環境で実行することを意味するようです。

私の質問のために、私は何かを変える必要があります。でも何?

  • aPKにChromeブラウザを埋め込みますか?
  • タブレットのChromeブラウザを使用するようAPKに指示しますか?
  • aPKを使用してプログラムを配布することをあきらめますか?
  • ???

私の親愛なる読者は私に手がかりを持っていますか?

おかげで、
ジェローム。

43
Jerome P Mrozak

Crosswalk をお勧めしますが、2017年3月19日以降、EOLと宣言されています(詳細は以下)。それでも、最も安定したソリューションであり、私たちのチームは現在、実稼働アプリケーションで使用しています。簡単に言えば、Chromiumベースのwebviewをapk内にパッケージ化し、Intelの支援を受けています。 Android 4.X.

公式セールスピッチ:

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

Cordova 4.0.0以降には公式のCrosswalkプラグインがあり、起動と実行が非常に簡単になります: https:// github.com/crosswalk-project/cordova-plugin-crosswalk-webview

Cordovaプロジェクトを実行している場合、必要なことは

cordova plugin add cordova-plugin-crosswalk-webview --save

crosswalk webviewプラグインを追加します。次のビルドでは、すべての依存関係を取得し、すべてを適切にパッケージ化します。

Android 4.4.x

On Android 4.4は、ハイブリッドアプリがChromiumベースのWebViewで実行されますが、同じバージョンに永久に固定されます(間違えなければChromium 33です)。ここでもCrosswalkを使用することをお勧めします。

Android 5.0 +

Android 5.0以降の場合、Chromium WebViewはGoogle Playで更新されます。詳細はこちら: http://developer.Android.com/about/versions/ Lollipop.html#WebView

CrossWalkバージョン20以降

CrossWalkは、バージョン20以降でAndroid 4.0.Xのサポートを終了します。サポートマトリックスに4.0.Xを保持する必要がある場合は、アップグレードしないでください。 Android 5.X以降では、CrossWalkはまったく含まれなくなりました。 これに関する詳細情報

Crosswalk v23が最後のリリースです(EOL)

Crosswalkは、2017年1月に最後の安定バージョンであるバージョン23をリリースすることを決定しました。これにより、Crosswalkの公式サポートが終了し、バグ修正などがコミュニティに残されます。 blogpost の詳細

注意!

モバイルハイブリッドアプリを実行すると、システムのWebビューに依存するときよりもCrosswalkのグラフィックパフォーマンスが優れていることがわかりました(Android 5.xであるSony Xperia ZLでテストしたため、WebViewなぜですか、まだわからないのですが、Crosswalkが特定の方法でWebviewを構成しているのでしょうか?これはさらに調査する必要があります。

50
smets.kevin

https://github.com/thedracle/cordova-Android-chromeview は新しいプロジェクトであり、より多くの作業が必要ですが、chromeviewプロジェクトとCordovaを組み合わせてCordovaにクロムを埋め込みますAndroidアプリケーション

7
albi90

これは有望なオプションのように見えます: Crosswalk + Cordova

利点:

  • Cordova APIを使用する
  • Crosswalk APIを使用する
  • CordovaはWebviewとしてCrosswalkを使用します
  • Crosswalkは、ChromiumベースのAndroid webviewを使用しません

Githubリポジトリ: https://github.com/crosswalk-project/crosswalk-cordova-Android

5
givanse

2014の回答を更新しましたAndroid 4.4以降ではChromeデフォルトではwebview 。This現在、Chromeバージョン30をベースにしています。

3
mikemaccana

1つのオプションは、適切なサイトへのリンクでChromeブラウザーを起動することです。

これは優れたユーザーエクスペリエンスではありませんが、その方法の一部を利用できる可能性があります。

次の行に沿って、Chromeブラウザをチェックして起動できます。

    String url = "http://www.totallyawesomeurl.com";
    String packageName = "com.Android.chrome";

    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    browserIntent.setPackage(packageName);
    browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    List<ResolveInfo> activitiesList = context.getPackageManager().queryIntentActivities(
            browserIntent, -1);
    if(activitiesList.size() > 0) {
        // Found the browser on the device, launch it
        context.startActivity(browserIntent);
    } else {
        // The browser isn't installed, so we should Prompt the user to get
        Intent playStoreIntent = new Intent(Intent.ACTION_VIEW);
        playStoreIntent.setData(Uri.parse("market://details?id="+packageName));
        playStoreIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(playStoreIntent);
    }

Chrome for Androidは、ICS以上のデバイスでのみ利用可能です。そのため、 minimumTargetSDKを14に設定し、おそらくOperaの古いバージョンのAndroidサイトがOpera whichパッケージ名は「com.opera.browser」です

0
Matt Gaunt