Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I ensure Android phonegap/cordova apps use Chrome webviews?

I'm writing a game app that twists SVG graphics until they cry "Uncle!". The program works OK on an iPad (safari/webkit) when hosted from a web server, for which no more need be said here. It also works OK on an Android tablet when hosted from a web server, as long as a recent version of Chrome (like v.25 or later) is used.

The program doesn't access the internet at all, but plays with its SVG graphics, runs Javascript and stores status in HTML5 localStorage().

If I run the program on the "default browser" of older Android tablets the SVG graphics don't get handled correctly, thus my requirement for a recent version of Chrome on the tablet.

I have just created an APK for my app, and find that it doesn't use the Chrome browser when I install it on my really-new Android tablet. Rather, it seems to use a browser embedded within the APK, or at least called from the APK for which remnant libraries exist in the tablet.

My aim with the APK is to make my code run displayed by a recent webkit browser, which seems to mean running in the Chrome environment.

For my question, I need to change something. But what?

  • embed a Chrome browser in my APK?
  • tell the APK to use the tablet's Chrome browser?
  • give up using APK to distribute the program?
  • ???

Do my dear readers have a clue for me?

Thanks,
Jerome.

like image 733
Jerome P Mrozak Avatar asked Aug 06 '13 03:08

Jerome P Mrozak


People also ask

Does Cordova use Chrome?

So apps made with cordova does not uses chrome view even on Android 4.4 platform. Right ? You received this message because you are subscribed to a topic in the Google Groups "phonegap" group.

What is Cordova WebView?

Apache Cordova is an open source framework that enables web developers to use their HTML, CSS, and JavaScript content to create a native application for a variety of mobile platforms. Let's look further at how this works. Cordova takes your web application and renders it within a native WebView.


2 Answers

I would recommend Crosswalk, however, since 19th of March 2017, it has been declared EOL (more info below). Still, it's by far the most stable solution out there, our team currently uses it in a production application. Put simply, it packages a Chromium based webview inside your apk and it's backed by Intel. You can use it starting from Android 4.X.

Official sales pitch:

Crosswalk is a web runtime for ambitious HTML5 applications. It provides all the features of a modern browser, combined with deep device integration and an API for adding native extensions. It is especially suited to mobile devices, with support for both Android and Tizen.

For Cordova 4.0.0 and higher there is an official Crosswalk plugin, making it really easy to get up and running: https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview

If you have your Cordova project running, all you need to do is

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

to add the Crosswalk webview plugin. The next build will fetch all dependencies and package everything nicely.

Android 4.4.x

On Android 4.4 your hybrid app will run on a Chromium based WebView, however, it will be stuck on the same version forever (if I'm not mistaken it's Chromium 33). In my opinion it would be best to use Crosswalk here as well.

Android 5.0+

If you code for Android 5.0 and above, the Chromium WebView will be updated through Google Play. More info here: http://developer.android.com/about/versions/lollipop.html#WebView

CrossWalk version 20 and up

CrossWalk will drop support for Android 4.0.X starting with version 20. If you really need to keep 4.0.X in your support matrix, do not upgrade. I would recommend to build another APK for Android 5.X and above which no longer includes CrossWalk at all. More info on this

Crosswalk v23 is the last release (EOL)

Crosswalk has decided to release one last stable version in January of 2017, version 23. This ends official support for Crosswalk and leaves bugfixes and such to the community. More info in the blogpost

Notice!

I found that running my mobile hybrid app had better graphical performance on Crosswalk than when I relied on the system webview (tested on a Sony Xperia ZL, which is on Android 5.x, so the webview is updated through the play store). Why that is, I've no idea yet, maybe Crosswalk configures the Webview in certain ways? This needs further investigation.

like image 132
smets.kevin Avatar answered Sep 25 '22 16:09

smets.kevin


try https://github.com/thedracle/cordova-android-chromeview its a new project and needs more work but combines the chromeview project with cordova to embed chromium in a cordova android application

like image 45
albi90 Avatar answered Sep 22 '22 16:09

albi90