📜  Kotlin Android WebView

📅  最后修改于: 2021-01-05 08:28:07             🧑  作者: Mango

Kotlin Android WebView

Android WebView是一个视图组件,用于显示应用程序中的网页。它使用WebKit引擎显示网页。 android.webkit.WebView类是AbsoluteLayout类的子类。

WebView的loadUrl()和loadData()方法用于加载和显示网页。要了解有关Android WebView的更多信息,请访问https://www.javatpoint.com/android-webview-example

有多种方法可以在WebView中加载网页,例如:

HTML内容作为字符串加载到类中:

val wedData: String =  "

Hello, Javatpoint!

" val mimeType: String = "text/html" val utfType: String = "UTF-8" webView.loadData(wedData,mimeType,utfType)

从应用程序内加载网页(.html,.jsp等)。在这种情况下,网页将放置在资产目录中。

webView.loadUrl("file:///android_asset/index.html")

将Web URL内的Web URL加载为:

webView.loadUrl("https://www.javatpoint.com/")

Kotlin Android WebView示例

在此示例中,我们将在WebView组件中加载Web URL并覆盖URL。

目录结构

activity_main.xml

将WebView组件添加到activity_main.xml文件中。





    

AndroidMenifest.xml

AndroidMenifest.xml文件中,添加Internet权限以连接网络连接。





    
    
        
            
                

                
            
        
    


MainActivity.kt

在MainActivity.kt类中添加以下代码。在此类中,我们使用WebView的loadUrl()方法加载Web URL。

创建一个MyWebViewClient类,该类将扩展WebViewClient ,该类重写了shouldOverrideUrlLoading()方法。

package example.javatpoint.com.kotlinwebview

import android.app.Activity
import android.os.Build
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.annotation.RequiresApi
import android.webkit.WebResourceError
import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

      /*  val wedData: String =  "

Hello, Javatpoint!

" val mimeType: String = "text/html" val utfType: String = "UTF-8" webView.loadData(wedData,mimeType,utfType)*/ /* val myWebUrl: String = "file:///android_asset/index.html" webView.loadUrl(myWebUrl)*/ webView.webViewClient = MyWebViewClient(this) webView.loadUrl("https://www.javatpoint.com/") } class MyWebViewClient internal constructor(private val activity: Activity) : WebViewClient() { @RequiresApi(Build.VERSION_CODES.LOLLIPOP) override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean { val url: String = request?.url.toString(); view?.loadUrl(url) return true } override fun shouldOverrideUrlLoading(webView: WebView, url: String): Boolean { webView.loadUrl(url) return true } override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError) { Toast.makeText(activity, "Got Error! $error", Toast.LENGTH_SHORT).show() } } }

输出: