From f9f3b22a5bda7d4b44a5e098b858c07073857fd3 Mon Sep 17 00:00:00 2001
From: Niklas Merz This document aims to define WebViews This document aims to define what a WebView is.
+ This document is a work in progress. It is intended to provide clarity on the definition of a WebView, which has been a topic of discussion within the WebView Community Group.
+
+ The WebView Community Group has identified a lack of clarity and consensus around the definition of a WebView. This has
+ led to confusion among developers and users alike, as the term is often used inconsistently across different platforms
+ and contexts.
+
- The WebView CG identified a need to come up with a definition to clearly identify a web browser vs. WebView. This was discussed via email
- here.
+ Non-goal: The purpose of this document is to define what a WebView is. It does not attempt to categorize or define different types of WebViews (see the usages and challenges explainer for that).
+
+
- Here is my attempt to summarise the discussion. Let me know if I missed anything important from the email discussion in this summary. Note that the goal here is only to define a web browser vs. webview, and not to define different types of webview (see #19 for that).
+ This was discussed via e-mail. WebViews are usually locked down and configured by apps embedding them to fit their use case. Sometimes they are used to build fully featured browsers or show general web content.
- A specification's definition of a webview should not refer to specific technologies like Android WebView or WKWebView. The general consensus appeared to be the definition should focus on how the web content is used. Definitions discussed included:
-
- In conclusion I would propose that the definition of a web browser is where the user may freely navigate the web. What identifies a WebView is the fact that navigation is restricted to a certain set of content that the app developer wishes to provide, and therefore free navigation of the open web is not allowed.
+ A WebView is defined as a software component that is used to render Web technology-based content outside of a Web browser (Native Apps, MiniApps, etc).
+
+ If you look at how the web content is used—for example, if you can freely navigate the web or certain UX elements exist—you could determine which type of WebView and whether who the user agent is.
+
+ Whether a WebView is a user agent or not is difficult to tell. In cases where a WebView acts as a general-purpose browser, it could be considered a user agent.
Under this definition, things that count as a web browser include: Under this definition things that count as a WebView include:
- Whether web content uses an iframe does not affect this definition, as it essentially only takes in to account how the top frame is used. For clarity perhaps this should be incorporated in to the definition, i.e. "in a web browser the user may freely navigate the web in the top frame of the browsing context".
+ If a WebView is used in such a way that it's not transparent to the user that they are interacting with web content or the app embedding the WebView is interacting with the Web content, it's less clear if all duties of a user agent are fulfilled, and the embedding app might become the user agent.
Abstract
+ Web Browser vs. WebView Definition
+ Introduction
+ How do WebViews differ from other user agents, such as browsers?
Use Cases Discussed
+ WebView User Experience
+
+
+ Use Cases
Use Cases Discussed
Definitions Discussed
-
-
- Additional Points Raised
-
Proposed Definition
+ Proposed Definition
+ What is a WebView?
User Agent Considerations
+ Web Browser
-
-
- WebView
-
-
How do WebViews differ from other user agents, such as browsers?
WebView User Experience
From c60fdf0a1f24fd5b1ba34f168c6e5ae2c6f70215 Mon Sep 17 00:00:00 2001
From: Niklas Merz Introduction
and contexts.
- Non-goal: The purpose of this document is to define what a WebView is. It does not attempt to categorize or define different types of WebViews (see the usages and challenges explainer for that). - - + Non-goal: The purpose of this document is to define what a WebView is and which types of WebViews exist. It is not intended to provide a comprehensive overview of all WebView implementations or their specific features. + You can find more information about the implementations in the usage and challenges report.
- This was discussed via e-mail. WebViews are usually locked down and configured by apps embedding them to fit their use case. Sometimes they are used to build fully featured browsers or show general web content. + This was discussed via e-mail in the WebView CG. WebViews are usually locked down and configured by apps embedding them to fit their use case. Sometimes they are used to build fully featured browsers or show general web content.
- If you look at how the web content is used—for example, if you can freely navigate the web or certain UX elements exist—you could determine which type of WebView and whether who the user agent is. + If you look at how the web content is used—for example, if you can freely navigate the web or certain UX elements exist—you could determine which type of WebView and whether who the user agent is.
-Whether a WebView is a user agent or not is difficult to tell. In cases where a WebView acts as a general-purpose browser, it could be considered a user agent. @@ -113,5 +117,47 @@
[=WebViews=] can differ based on the following properties:
++
In practice, [=WebViews=] are classified into one of two categories with fixed properties:
+The "WebView: Usage Scenarios and Challenges" report goes into detail and puts implementations into the [=Browser-like=] and [=Fully-fledged=] categories.
+