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"
/>