在 Android 中的自定义 WebView 中使用 ViewModel

问题描述

我有一个自定义 WebView,我处理其中的几个项目以加载指定的 Java 脚本命令。 此外,我在自定义 WebView 内的 WebViewClient 中有一些逻辑,我不想在我的片段中定义和设置 WebViewClient。 每当从 WebViewClient 调用“onPageFinished”时,我都需要宣布,所以我在我的 WebView 中使用了 LiveData,并在我的片段中观察到了这一点。 这是最佳做法和正确方法吗?

就是这样:

class MyWebView : WebView {
 private val _loadPageFinished = mutablelivedata<Boolean>()
 val loadPageFinished: LiveData<Boolean> get() = _loadPageFinished

//setWebViewClient
    webViewClient = object : WebViewClient() {
            override fun onPageFinished(view: WebView,url: String) {
                _loadPageFinished.postValue(true)
            }
}

}

在 Fragment 中是这样的:

class MyFragment:Fragment(){

    override fun onCreateView(
        inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?
    ): View {

        webview.loadPageFinished.observe(viewLifecycleOwner,Observer{

         //do something when page loading finished here
    })
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)