What is a WebView?

What is this all about?

The WebView Compatibility Data Project is an initiative driven by the WebView CG to make machine-readable data compatability data on WebViews more readily available for documentation platforms and other tools.

WebView Community Group

You can read more about Webviews in the WebView: Usage Scenarios and Challenges Draft report The charter of the WebView community group defines the scope and goals of this project.

What is a WebView?

WebViews are software components provided in an SDK that can be used to render Web content directly within a native application without having to switch to the system-wide Web browser. WebViews are used in a wide range of scenarios. They all share the same architecture: a native application embeds and interacts with one or more WebViews to render Web content within the WebView.

There are different types of WebViews

WebViews can differ based on the following properties:

  • UX flexibility: Whether the native application has full control over the UX provided by the WebView or whether the WebView imposes the UX with limited customization and control from the native application.
  • Access to the web content: Whether the native application has the ability to read and modify the web content rendered in the WebView. The native application can leverage this to establish a communication link between the native code and the Web code, and in particular to expose native APIs to the Web content, making it possible for the Web content to make native calls.
  • State sharing: Whether the WebView shares state such as cookies and cache with the system-wide web browser, or is completely isolated.

However, in practice, WebViews are classified into one of two categories with fixed properties:

Browser-like WebViews
These WebViews are straightforward to embed with a simpler API surface mostly targeted at loading the web page. They are generally not flexible, do not provide access to the web content, but share state with the system-wide web browser.
Fully-fledged WebViews
These WebViews are used for creating richer experiences and feature powerful integration primitives. They have full UX flexibility when integrated within an application, provide the ability to access the web content (native and web parts of the application can communicate), and do not share state with the system-wide web browser.