📜  Kotlin 中的 Android WebView

📅  最后修改于: 2022-05-13 01:55:31.813000             🧑  作者: Mango

Kotlin 中的 Android WebView

WebView 是一个视图,用于在应用程序内显示网页。它用于将应用程序转换为 Web 应用程序。在本文中,让我们使用 Kotlin 在 Android 应用程序中显示 https://www.geeksforgeeks.org/。

类层次结构

kotlin.Any
     android.view.View
          android.view.ViewGroup
               android.widget.AbsoluteLayout
                    android.webkit.WebView

方法

步骤 1:创建一个新项目

要在 android studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。

第二步:修改activity_main.xml

这个是用来设置Application的前端的,我们把WebView放在前端。

XML

 
    
    
 


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() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        // WebViewClient allows you to handle
        // onPageFinished and override Url loading.
        webView.webViewClient = WebViewClient()
 
        // this will load the url of the website
        webView.loadUrl("https://www.geeksforgeeks.org/")
 
        // this will enable the javascript settings
        webView.settings.javaScriptEnabled = true
 
        // if you want to enable zoom feature
        webView.settings.setSupportZoom(true)
    }
 
    // if you press Back button this code will work
    override fun onBackPressed() {
        // if your webview can go back it will go back
        if (webView.canGoBack())
            webView.goBack()
        // if your webview cannot go back
        // it will exit the application
        else
            super.onBackPressed()
    }
}


XML

 

 
    
    
 
   
       
           
               
               
           
       
   


第三步:修改 MainActivity.kt

这是应用程序的后端,在这里我们将值分配给视图并将操作分配给视图。

科特林

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() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        // WebViewClient allows you to handle
        // onPageFinished and override Url loading.
        webView.webViewClient = WebViewClient()
 
        // this will load the url of the website
        webView.loadUrl("https://www.geeksforgeeks.org/")
 
        // this will enable the javascript settings
        webView.settings.javaScriptEnabled = true
 
        // if you want to enable zoom feature
        webView.settings.setSupportZoom(true)
    }
 
    // if you press Back button this code will work
    override fun onBackPressed() {
        // if your webview can go back it will go back
        if (webView.canGoBack())
            webView.goBack()
        // if your webview cannot go back
        // it will exit the application
        else
            super.onBackPressed()
    }
}

第四步:修改AndroidManifest.xml

AndroidManifest.xml中,需要包含以下权限才能访问互联网。

XML


 

 
    
    
 
   
       
           
               
               
           
       
   


输出:在模拟器上运行

当我们在模拟器或 Android 智能手机上运行应用程序时,我们可以看到这是我们的输出。请记住在您的设备上打开互联网。

输出画面