Skip to content

Commit

Permalink
🐛 [kmp/browser] 修复Jmm打开dweb-deeplink会错误创建图层的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
Gaubee committed May 28, 2024
1 parent 6a1a7be commit 2017733
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import kotlinx.serialization.json.JsonPrimitive
import org.dweb_browser.browser.common.createDwebView
import org.dweb_browser.core.ipc.Ipc
import org.dweb_browser.core.module.MicroModule
import org.dweb_browser.core.std.dns.nativeFetch
import org.dweb_browser.dwebview.IDWebView
import org.dweb_browser.dwebview.base.ViewItem
import org.dweb_browser.helper.ChangeableList
Expand Down Expand Up @@ -95,7 +96,12 @@ class MultiWebViewController(
).also { viewItem ->
webViewList.add(viewItem)
dWebView.onCreateWindow {
appendWebViewAsItem(it)
val url = it.getUrl()
if (url.startsWith("dweb://")) {
dWebView.remoteMM.nativeFetch(url)
} else {
appendWebViewAsItem(it)
}
}
dWebView.onDestroy {
closeWebView(webviewId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ class DWebView private constructor(internal val engine: DWebViewEngine, initUrl:
}
}


override val remoteMM get() = engine.remoteMM
override val ioScope get() = engine.ioScope
override suspend fun startLoadUrl(url: String) = withMainContext {
engine.loadUrl(url)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ expect suspend fun IDWebView.Companion.create(
): IDWebView

abstract class IDWebView(initUrl: String?) {
abstract val remoteMM: MicroModule.Runtime
abstract val ioScope: CoroutineScope

@Serializable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class DWebView(
}
}

override val remoteMM get() = viewEngine.remoteMM
override val ioScope: CoroutineScope
get() = viewEngine.ioScope

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ class DWebView private constructor(
}


override val remoteMM get() = engine.remoteMM
private var _engine: DWebViewEngine? = viewEngine
internal val engine get() = _engine ?: throw NullPointerException("dwebview already been destroy")
private val _engineLazy = RememberLazy(viewEngine) { _engine }
Expand Down

0 comments on commit 2017733

Please sign in to comment.