3D WebView for Android: version comparison

There are two different versions of 3D WebView for Android, which use different browser engines:

The original 3D WebView for Android package is recommended for normal Android development because its native library size is smaller. However, if you're developing for a VR headset like Oculus Quest, then 3D WebView for Android with Gecko Engine is recommended instead. Or if you prefer, you can use both versions together in order to get the best of both worlds. A more detailed comparison of the two versions is provided below.

3D WebView for Android

  • Uses Android's built-in android.webkit.WebView package as its browser engine.
  • Has a small storage footprint (< 2 MB), because the browser engine is built into the operating system instead of the library.
  • Supports native video and WebGL on normal Android devices.
  • Supports transparent webviews.
  • Limitations on VR headsets:
    • Limited video support (regular HTML5 video tags and videos on popular sites like YouTube, Vimeo, and Facebook work, but some 3rd-party JS video widgets do not function as expected). For more info, please see this article.
    • No WebGL support.
    • On Oculus Quest, hover interactions aren't supported and click interactions sometimes don't work as well. This is because the Quest's android.webkit.WebView package has a bug that prevents 3D WebView's normal approach for dispatching mouse events from working correctly. So, 3D WebView must fallback to dispatching mouse events using JavaScript instead.

3D WebView for Android with Gecko Engine

  • Uses Mozilla's GeckoView library as its browser engine.
  • Has a larger storage footprint because the browser engine is embedded in the library instead of the operating system. The GeckoView library adds ~50 MB to the size of the app's APK and ~164 MB to the size of the Unity project.
  • Supports native video and WebGL, even on VR headsets.
  • Mouse events and hovering work well, even on Oculus Quest.
  • Doesn't support transparent webviews.