WebView for Android
In Android 5.0 (Lollipop), the WebView has moved to an APK so it can be updated seperately to the Android platform. To see what version of Chrome is currently used on a Lollipop device, simply go to Settings < Apps < Android System WebView and look at the version.
If you're a web developer looking to start developing a WebView-based Android application, see Getting Started: WebView-based Applications for Web Developers.
If you're primarily planning to show external web content inside of your app, you should consider Custom Tabs instead.
For tips on scaling WebView content for mobile devices, see Pixel-Perfect UI in the WebView.
The new WebView also supports remote debugging using the Chrome DevTools.
WebView FAQ #
What version of Chrome is it based on? #
The WebView shipped with Android 4.4 (KitKat) is based on the same code as Chrome for Android version 30. This WebView does not have full feature parity with Chrome for Android and is given the version number 18.104.22.168.
The updated WebView shipped with Android 4.4.3 has the version number 22.214.171.124.
A developer preview WebView is shipping with the Android L Developer Preview. The developer preview version number is 126.96.36.199.
Caution: You cannot publish apps using the L Developer Preview to the Google Play store.
The WebView in Android L can be updated via the Play Store, so you need to check the latest version on the device under App Settings.
Will the new WebView auto-update? #
The WebView will auto-update for mobile devices with Android L and above.
For future proofing you app, you can use the Beta WebView to test versions of the WebView before it's launched. Checkout this Android Developer blog post for more details.
What is the default user-agent? #
The new WebView adds Chrome/_version_ to the user-agent string. Refer to Chrome User Agent Strings for an example.
How do I set the user-agent of the WebView? #
You can set the user-agent by using the Java setUserAgentString method. This method only changes the user-agent string for requests sent by the WebView itself.
You can't set the user-agent string used for
Does this mean Chrome for Android is using the WebView? #
Does the new WebView have feature parity with Chrome for Android? #
For the most part, features that work in Chrome for Android should work in the new WebView.
Chrome for Android supports a few features which aren't enabled in the WebView, including:
|Feature||WebView v30||WebView v33||WebView v36|
|File input type||x||x||x|
What hardware sensor APIs are available to the new WebView? #
Some HTML5 APIs can be used to access the hardware sensors on an Android device. Chrome for Android supports a few of these APIs but not all of them are currently enabled in the WebView.
|API||WebView v30||WebView v33|
|Geolocation API (requires ||✓||✓|
|Device Orientation API||x||x|
|Media Capture and Streams||x||x|
|Vibration API (requires ||x||✓|
What does the new WebView mean for developers? #
There are some changes that will affect existing apps.
If you are currently using
content:// URLs to load files from a content provider in your application, note that these URLs only work when accessed from local content. That is, web content hosted outside your application is not allowed to access files built into your application.
There are a small number of other changes that might impact your application. Read the migration guide for more information.
How do I enable remote debugging? #
See the remote debugging guide.
Does the WebView support the Chrome Apps APIs? #
No. The Chrome Apps platform isn't yet supported on Android.
Should I enable hardware acceleration? #
Hardware acceleration is enabled by default. If you are explicitly disabling it for older versions of Android you should try enabling it for KitKat based devices and see if it improves performance.