WebView wrapper for Jetpack Compose
A library which provides a Jetpack Compose wrapper around Android's WebView.
Warning
This library is deprecated, and the API is no longer maintained. We recommend forking the implementation and customising it to your needs.
The original documentation is below.
Usage
To implement this wrapper there are two key APIs which are needed:
WebView
, which is provides the layout, and
rememberWebViewState(url)
which provides some remembered state including the URL to display.
The basic usage is as follows:
val
state
=
rememberWebViewState
(
"https://example.com"
)
WebView
(
state
)
This will display a WebView in your Compose layout that shows the URL provided.
There is a larger sample in the sample app which can be found
here
. This sample also shows how to show a loading state.
WebView settings including JavaScript
By default, JavaScript is disabled in the WebView. To enable it or any other settings you can use the
onCreated
callback.
WebView
(
state
=
webViewState
,
onCreated
=
{
it
.
settings
.
javaScriptEnabled
=
true
}
)
Capturing back presses
By default the WebView will capture back presses/swipes when relevant and navigate the WebView back. This can be disabled via the parameter on
the Composable.
WebView
(
...
captureBackPresses
=
false
)
Using a subclass of WebView
If you want to use a subclass of
WebView
, or simply require more control over its instantiation, you can provide a factory.
WebView
(
...
factory
=
{
context
->
CustomWebView
(
context
)
}
)
Download
repositories
{
mavenCentral
()
}
dependencies
{
implementation
"com.google.accompanist:accompanist-webview:<version>"
}