首页 > 解决方案 > 如何在 WebViewClient 中获取 SharedPreferences 值?

问题描述

大家好,我正在努力在 webviewClient 中获取 SharedPreferences 布尔值。我需要它来控制 webview 的某些属性,例如启用缩放、cookie 等。我在getBaseContext上遇到错误

这是我的代码:

class WebViewClient : android.webkit.WebViewClient() {
    override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
        super.onPageStarted(view, url, favicon)

        val pref = PreferenceManager.getDefaultSharedPreferences(getBaseContext())
        val zoom = pref.getBoolean("ZoomControls", false)
        val webView = view as com.winkbr.browser.activity.WebView
        webView.progressBar?.isVisible = true
        if (!zoom) {

            webView.settings.builtInZoomControls = true
        } else {
        webView.settings.displayZoomControls = false
        }

    }
} ```

Thanks in advance.

标签: androidkotlinwebviewsharedpreferences

解决方案


try to use Context given by WebView

val pref = PreferenceManager.getDefaultSharedPreferences(view.getContext())

getBaseContext() method belongs to ContextWrapper class. Activity, Service, Application and some other components are extending it, so it is available only in these


推荐阅读