Back button in android webview within a fragment

后端 未结 3 997
傲寒
傲寒 2021-01-26 16:10

I have created a webview within a fragment however when I am trying to press the back button, it is killing the app instead of going back. What i want is to go back when i pres

3条回答
  •  無奈伤痛
    2021-01-26 16:52

    In Kotlin you can achieve this by adding setOnKeyListener to your WebView. This listener responds to clicks on the device's hardware buttons.

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        val myWebView: WebView = view.findViewById(R.id.your_webView)
        myWebView.webViewClient = WebViewClient()
        myWebView.loadUrl("https://www.google.com/")
        myWebView.setOnKeyListener { v, keyCode, event ->
            if (keyCode == KeyEvent.KEYCODE_BACK && myWebView.canGoBack()) {
                myWebView.goBack() // Navigate back to previous web page if there is one
                nested_scroll.scrollTo(0, 0) // Scroll webview back to top of previous page
            }
            true
        }
    }
    

提交回复
热议问题