Android WebView in Kotlin
Last Updated :
19 Apr, 2023
WebView is a view that is used to display web pages inside the app. It is used to turn the app into a web application. In this article let’s display the https://www.geeksforgeeks.org/ inside the Android Application using Kotlin.
Note: To implement Android WebView in Java please refer How to use WebView in Android using Java.
Class Hierarchy
kotlin.Any
android.view.View
android.view.ViewGroup
android.widget.AbsoluteLayout
android.webkit.WebView
Approach:
Step 1: Create a new project
To create a new project in android studio please refer, how to Create/Start a New Project in Android Studio.
Remember to add these to your gradle(app) files
plugins
{
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
}
Step 2: Modify activity_main.xml
This is used to set the front end of the Application, we place the WebView in the front end.
XML
< androidx.constraintlayout.widget.ConstraintLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
tools:context = ".MainActivity" >
< WebView
android:id = "@+id/webView"
android:layout_width = "match_parent"
android:layout_height = "match_parent" />
</ androidx.constraintlayout.widget.ConstraintLayout >
|
Step 3: Modify MainActivity.kt
This is the back end of the Application, here we assign values to the views and actions to the views.
Kotlin
package com.example.webview_kotlin
import android.os.Bundle
import android.webkit.WebViewClient
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super .onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webView)
webView.webViewClient = WebViewClient()
webView.settings.javaScriptEnabled = true
webView.settings.setSupportZoom( true )
}
override fun onBackPressed() {
if (webView.canGoBack())
webView.goBack()
else
super .onBackPressed()
}
}
|
Step 4: Modify AndroidManifest.xml
In AndroidManifest.xml, one needs to include the below permission, in order to access the internet.
XML
<? xml version = "1.0" encoding = "utf-8" ?>
package = "com.example.webview_kotlin" >
< uses-permission android:name = "android.permission.INTERNET" />
< application
android:allowBackup = "true"
android:icon = "@mipmap/ic_launcher"
android:label = "@string/app_name"
android:roundIcon = "@mipmap/ic_launcher_round"
android:supportsRtl = "true"
android:theme = "@style/AppTheme" >
< activity android:name = ".MainActivity" >
< intent-filter >
< action android:name = "android.intent.action.MAIN" />
< category android:name = "android.intent.category.LAUNCHER" />
</ intent-filter >
</ activity >
</ application >
</ manifest >
|
Output: Run on Emulator
When we run the application either on the Emulator or on the Android Smartphone we can see this as our output. Remember to turn on the internet on your device.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...