📅  最后修改于: 2021-01-05 08:28:07             🧑  作者: Mango
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/")
在此示例中,我们将在WebView组件中加载Web URL并覆盖URL。
将WebView组件添加到activity_main.xml文件中。
在AndroidMenifest.xml文件中,添加Internet权限以连接网络连接。
在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()
}
}
}
输出: