File tree Expand file tree Collapse file tree 5 files changed +20
-11
lines changed
sample/shared/src/commonMain/kotlin/com/kevinnzou/sample
desktopMain/kotlin/com/multiplatform/webview/web
iosMain/kotlin/com/multiplatform/webview/web Expand file tree Collapse file tree 5 files changed +20
-11
lines changed Original file line number Diff line number Diff line change @@ -399,12 +399,15 @@ Developers can configure custom settings in the shared code in the following way
399399val webViewState = rememberWebViewStateWithHTMLData(
400400 data = html
401401)
402- webViewState.webSettings.apply {
403- isJavaScriptEnabled = true
404- androidWebSettings.apply {
402+ DisposableEffect (Unit ) {
403+ webViewState.webSettings.apply {
404+ isJavaScriptEnabled = true
405+ androidWebSettings.apply {
405406 isAlgorithmicDarkeningAllowed = true
406407 safeBrowsingEnabled = true
408+ }
407409 }
410+ onDispose { }
408411}
409412```
410413
Original file line number Diff line number Diff line change @@ -73,11 +73,14 @@ Developers can configure custom settings in the shared code in the following way
7373val webViewState = rememberWebViewStateWithHTMLData(
7474 data = html
7575)
76- webViewState.webSettings.apply {
77- isJavaScriptEnabled = true
78- androidWebSettings.apply {
79- isAlgorithmicDarkeningAllowed = true
80- safeBrowsingEnabled = true
76+ DisposableEffect (Unit ) {
77+ webViewState.webSettings.apply {
78+ isJavaScriptEnabled = true
79+ androidWebSettings.apply {
80+ isAlgorithmicDarkeningAllowed = true
81+ safeBrowsingEnabled = true
82+ }
8183 }
84+ onDispose { }
8285}
8386```
Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ import androidx.compose.material.icons.Icons
1919import androidx.compose.material.icons.filled.ArrowBack
2020import androidx.compose.material.icons.filled.Close
2121import androidx.compose.runtime.Composable
22+ import androidx.compose.runtime.DisposableEffect
2223import androidx.compose.runtime.LaunchedEffect
2324import androidx.compose.runtime.getValue
2425import androidx.compose.runtime.mutableStateOf
@@ -53,12 +54,14 @@ import kotlinx.coroutines.flow.filter
5354internal fun BasicWebViewSample () {
5455 val initialUrl = " https://github.com/KevinnZou/compose-webview-multiplatform"
5556 val state = rememberWebViewState(url = initialUrl)
56- LaunchedEffect (Unit ) {
57+ DisposableEffect (Unit ) {
5758 state.webSettings.apply {
5859 logSeverity = KLogSeverity .Debug
5960 customUserAgentString =
6061 " Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1) AppleWebKit/625.20 (KHTML, like Gecko) Version/14.3.43 Safari/625.20"
6162 }
63+
64+ onDispose { }
6265 }
6366 val navigator = rememberWebViewNavigator()
6467 var textFieldValue by remember(state.lastLoadedUrl) {
Original file line number Diff line number Diff line change @@ -138,13 +138,13 @@ fun DesktopWebView(
138138 browser?.let {
139139 SwingPanel (
140140 factory = {
141+ onCreated()
141142 state.webView = desktopWebView
142143 webViewJsBridge?.webView = desktopWebView
143144 browser.apply {
144145 addDisplayHandler(state)
145146 addLoadListener(state, navigator)
146147 }
147- onCreated()
148148 browser.uiComponent
149149 },
150150 modifier = modifier,
Original file line number Diff line number Diff line change @@ -79,6 +79,7 @@ fun IOSWebView(
7979 frame = CGRectZero .readValue(),
8080 configuration = config,
8181 ).apply {
82+ onCreated()
8283 allowsBackForwardNavigationGestures = captureBackPresses
8384 customUserAgent = state.webSettings.customUserAgentString
8485 this .addProgressObservers(
@@ -101,7 +102,6 @@ fun IOSWebView(
101102 showsVerticalScrollIndicator = it.showVerticalScrollIndicator
102103 }
103104 }
104- onCreated()
105105 }.also {
106106 val iosWebView = IOSWebView (it, scope, webViewJsBridge)
107107 state.webView = iosWebView
You can’t perform that action at this time.
0 commit comments