webview example kotlin fragment

// Step 1: Import necessary packages
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.webkit.WebChromeClient
import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.fragment.app.Fragment

class WebViewFragment : Fragment() {

    // Step 2: Declare WebView variable
    private lateinit var webView: WebView

    // Step 3: Override onCreateView to inflate the layout for this fragment
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        val view = inflater.inflate(R.layout.fragment_web_view, container, false)

        // Step 4: Initialize WebView
        webView = view.findViewById(R.id.webView)

        // Step 5: Enable JavaScript in WebView
        webView.settings.javaScriptEnabled = true

        // Step 6: Set WebViewClient to handle page navigation
        webView.webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
                view?.loadUrl(request?.url.toString())
                return true
            }
        }

        // Step 7: Set WebChromeClient for handling progress changes
        webView.webChromeClient = object : WebChromeClient() {
            // You can override methods like onProgressChanged if needed
        }

        // Step 8: Load a URL into the WebView
        webView.loadUrl("https://www.example.com")

        // Step 9: Return the inflated view
        return view
    }
}

Make sure to replace "https://www.example.com" with the actual URL you want to load in the WebView. Additionally, create a layout file (e.g., fragment_web_view.xml) with a WebView element:

<!-- res/layout/fragment_web_view.xml -->
<WebView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
/>