Kotlin語言使用WebView示例介紹
1、WebView類提供的常用方法

2、WebView的簡單用法實現(xiàn)瀏覽網(wǎng)頁
步驟:
布局文件
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>MainActivity.kt文件
1、啟用JavaScript的支持
調(diào)用WebSetting類的setJavaScriptEnabled()方法,設置啟動JavaScript的支持
val webView:WebView=findViewById(R.id.webView) webView.settings.javaScriptEnabled=true
2、目標的網(wǎng)頁仍然在當前WebView中顯示
調(diào)用WebView的setWebViewClient()方法,從一個網(wǎng)頁跳轉(zhuǎn)到另一個網(wǎng)頁時,跳轉(zhuǎn)的網(wǎng)頁也在webView中顯示
webView.webViewClient= WebViewClient()
3、將網(wǎng)址傳入
調(diào)用WebView的loadUrl方法,將網(wǎng)址傳入,顯示網(wǎng)頁內(nèi)容
webView.loadUrl("https://www.baidu.com")AndroidManifest文件
加入權(quán)限聲明
訪問網(wǎng)絡時需要聲明權(quán)限的,在AndroidManifest中加入以下權(quán)限聲明
<uses-permission android:name="android.permission.INTERNET"/>
3、結(jié)合WebView方法做一個迷你瀏覽器
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/back"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="back"/>
<Button
android:id="@+id/forward"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="forward"/>
<Button
android:id="@+id/refresh"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="refresh"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/edittext"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2" />
<Button
android:id="@+id/go"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="go" />
</LinearLayout>
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//控件
val webView:WebView=findViewById(R.id.webView)
val back:Button=findViewById(R.id.back)
val forward:Button=findViewById(R.id.forward)
val refresh:Button=findViewById(R.id.refresh)
val go:Button=findViewById(R.id.go)
val edittext:EditText=findViewById(R.id.edittext)
//瀏覽網(wǎng)頁
webView.settings.javaScriptEnabled=true//啟用JavaScript的支持
webView.webViewClient= WebViewClient()//目標的網(wǎng)頁仍然在當前WebView中顯示
webView.loadUrl("https://www.baidu.com")//.將網(wǎng)址傳入
//按鍵的點擊事件
back.setOnClickListener {
webView.goBack()//返回
}
forward.setOnClickListener {
webView.goForward()//前進
}
refresh.setOnClickListener {
webView.reload()//重新加載當前頁面
}
go.setOnClickListener {
if(edittext.text.toString()!=null) {//判斷是否輸入網(wǎng)址
webView.loadUrl("http://" +edittext.text.toString())//加載輸入的網(wǎng)址
webView.webViewClient=WebViewClient()
}
}
}
}<uses-permission android:name="android.permission.INTERNET"/>
最終的效果圖如下

4、加載本地html頁面
新建html的方法(android studio)
右鍵點擊main->"New"->"Folder"->"Assets Folder"
在文件名的后面加".html"
步驟
1.在布局文件中添加WebView組件
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>2、調(diào)用WebView的loadUrl()方法(注意是三條///)
val webView:WebView=findViewById(R.id.webView)
webView.loadUrl("file:///android_asset/a.html")5、于JavaScript交互調(diào)用
WebSetting類提供的常用方法

步驟
在布局文件中添加WebView,調(diào)用WebSetting類的setJavaScriptEnabled()方法,設置啟動JavaScript的支持,調(diào)用WebView的setWebViewClient()方法,調(diào)用WebView的loadUrl方法,將html文件傳入,新建JavaScriptObject類,調(diào)用addJavascriptInterface方法,這樣,我們就可以通過js直接使用app,執(zhí)行JavaScriptObject類里面的方法。
例子展示JavaScript調(diào)用Android的通話功能
html文件
<html>
<head>
<title>JavaScript交互</title>
</head>
<body>
hello
</body>
</html>
<script language="JavaScript">
app.call("10086");
</script>布局文件(上面已有,就不多放代碼了)
AndroidManifest文件
class MainActivity : AppCompatActivity() {
class JavaScriptObject(var context: Context) {
@JavascriptInterface//一定要添加這個標簽,將該方法暴露給JavaScript
fun call(n:String)
{
var intent= Intent(Intent.ACTION_DIAL).setData(Uri.parse("tel:" + n));
startActivity(context,intent,null);
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val webView:WebView=findViewById(R.id.webView)
webView.webViewClient=WebViewClient()
webView.settings.javaScriptEnabled=true;
webView.loadUrl("file:///android_asset/a.html")
webView.addJavascriptInterface(JavaScriptObject(this),"app")
}
}在"Manifest"文件添加電話的權(quán)限
<uses-permission android:name="android.permission.CALL_PHONE" />
運行結(jié)果如圖

到此這篇關(guān)于Kotlin語言使用WebView示例介紹的文章就介紹到這了,更多相關(guān)Kotlin WebView內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Flutter開發(fā)技巧RadialGradient中radius計算詳解
這篇文章主要為大家介紹了Flutter小技巧RadialGradient?中?radius?的計算詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
Android Kotlin 高階函數(shù)詳解及其在協(xié)程中的應用小結(jié)
高階函數(shù)是 Kotlin 中的一個重要特性,它能夠?qū)⒑瘮?shù)作為一等公民(First-Class Citizen),使得代碼更加簡潔、靈活和可讀,本文給大家介紹Android Kotlin 高階函數(shù)詳解及其在協(xié)程中的應用,感興趣的朋友一起看看吧2025-03-03
Android?妙用TextView實現(xiàn)左邊文字,右邊圖片
這篇文章主要介紹了Android?妙用TextView實現(xiàn)左邊文字,右邊圖片的相關(guān)資料,需要的朋友可以參考下2023-07-07
Android設備間實現(xiàn)藍牙(Bluetooth)共享上網(wǎng)
這篇文章主要為大家詳細介紹了Android設備間實現(xiàn)藍牙(Bluetooth)共享上網(wǎng)的方法,主要以圖片的方式向大家展示藍牙共享上網(wǎng)2016-03-03
Android平臺基于Pull方式對XML文件解析與寫入方法詳解
這篇文章主要介紹了Android平臺基于Pull方式對XML文件解析與寫入方法,結(jié)合實例形式分析了Android基于Pull方式對xml文件解析及寫入操作的步驟、原理與操作技巧,需要的朋友可以參考下2016-10-10
Android Intent調(diào)用 Uri的方法總結(jié)
這篇文章主要介紹了Android Intent調(diào)用 Uri的方法總結(jié)的相關(guān)資料,這里整理了Android Intent 調(diào)用Uri的常用方法,需要的朋友可以參考下2017-09-09

