Skip to content

Commit b3f99a3

Browse files
authored
Merge pull request #106 from KevinnZou/bugfix/websetting
Bugfix/websetting
2 parents ba2919d + c420e65 commit b3f99a3

File tree

5 files changed

+20
-11
lines changed

5 files changed

+20
-11
lines changed

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -399,12 +399,15 @@ Developers can configure custom settings in the shared code in the following way
399399
val 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

docs/setting.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,14 @@ Developers can configure custom settings in the shared code in the following way
7373
val 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
```

sample/shared/src/commonMain/kotlin/com/kevinnzou/sample/BasicWebViewSample.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import androidx.compose.material.icons.Icons
1919
import androidx.compose.material.icons.filled.ArrowBack
2020
import androidx.compose.material.icons.filled.Close
2121
import androidx.compose.runtime.Composable
22+
import androidx.compose.runtime.DisposableEffect
2223
import androidx.compose.runtime.LaunchedEffect
2324
import androidx.compose.runtime.getValue
2425
import androidx.compose.runtime.mutableStateOf
@@ -53,12 +54,14 @@ import kotlinx.coroutines.flow.filter
5354
internal 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) {

webview/src/desktopMain/kotlin/com/multiplatform/webview/web/WebView.desktop.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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,

webview/src/iosMain/kotlin/com/multiplatform/webview/web/WebView.ios.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)