Kotlin語言使用WebView示例介紹
1、WebView類提供的常用方法
2、WebView的簡(jiǎn)單用法實(shí)現(xiàn)瀏覽網(wǎng)頁(yè)
步驟:
布局文件
<WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" />
MainActivity.kt文件
1、啟用JavaScript的支持
調(diào)用WebSetting類的setJavaScriptEnabled()方法,設(shè)置啟動(dòng)JavaScript的支持
val webView:WebView=findViewById(R.id.webView) webView.settings.javaScriptEnabled=true
2、目標(biāo)的網(wǎng)頁(yè)仍然在當(dāng)前WebView中顯示
調(diào)用WebView的setWebViewClient()方法,從一個(gè)網(wǎng)頁(yè)跳轉(zhuǎn)到另一個(gè)網(wǎng)頁(yè)時(shí),跳轉(zhuǎn)的網(wǎng)頁(yè)也在webView中顯示
webView.webViewClient= WebViewClient()
3、將網(wǎng)址傳入
調(diào)用WebView的loadUrl方法,將網(wǎng)址傳入,顯示網(wǎng)頁(yè)內(nèi)容
webView.loadUrl("https://www.baidu.com")
AndroidManifest文件
加入權(quán)限聲明
訪問網(wǎng)絡(luò)時(shí)需要聲明權(quán)限的,在AndroidManifest中加入以下權(quán)限聲明
<uses-permission android:name="android.permission.INTERNET"/>
3、結(jié)合WebView方法做一個(gè)迷你瀏覽器
<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)頁(yè) webView.settings.javaScriptEnabled=true//啟用JavaScript的支持 webView.webViewClient= WebViewClient()//目標(biāo)的網(wǎng)頁(yè)仍然在當(dāng)前WebView中顯示 webView.loadUrl("https://www.baidu.com")//.將網(wǎng)址傳入 //按鍵的點(diǎn)擊事件 back.setOnClickListener { webView.goBack()//返回 } forward.setOnClickListener { webView.goForward()//前進(jìn) } refresh.setOnClickListener { webView.reload()//重新加載當(dāng)前頁(yè)面 } 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頁(yè)面
新建html的方法(android studio)
右鍵點(diǎn)擊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()方法,設(shè)置啟動(dòng)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//一定要添加這個(gè)標(biāo)簽,將該方法暴露給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" />
運(yùn)行結(jié)果如圖
到此這篇關(guān)于Kotlin語言使用WebView示例介紹的文章就介紹到這了,更多相關(guān)Kotlin WebView內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android 8.0不能自動(dòng)安裝APK問題的解決方法(完美適配)
這篇文章主要給大家介紹了關(guān)于Android 8.0不能自動(dòng)安裝APK問題的解決方法(完美適配),這里的自動(dòng)安裝是指下載完成后,自動(dòng)彈出安裝界面,而不是靜默安裝APK,文中介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07淺談Android單元測(cè)試的作用以及簡(jiǎn)單示例
本篇文章主要介紹了淺談Android單元測(cè)試的作用以及簡(jiǎn)單示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08android中RecycleView添加下滑到底部的監(jiān)聽示例
本篇文章主要介紹了android中RecycleView添加下滑到底部的監(jiān)聽示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03Android自定義控件簡(jiǎn)單實(shí)現(xiàn)側(cè)滑菜單效果
這篇文章主要為大家詳細(xì)介紹了Android自定義控件打造史上最簡(jiǎn)單的側(cè)滑菜單的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06Android實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10Service與Activity之間的通信(同一進(jìn)程)
這篇文章主要介紹了Service與Activity之間的通信(同一進(jìn)程)的相關(guān)資料,需要的朋友可以參考下2016-03-03Android實(shí)現(xiàn)音頻條形圖效果(仿音頻動(dòng)畫無監(jiān)聽音頻輸入)
這篇文章主要介紹了Android實(shí)現(xiàn)音頻條形圖效果(仿音頻動(dòng)畫無監(jiān)聽音頻輸入)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09詳解BadTokenException報(bào)錯(cuò)解決方法
這篇文章主要介紹了BadTokenException報(bào)錯(cuò)的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08Android中RecyclerView的item寬高問題詳解
RecyclerView出現(xiàn)已經(jīng)有一段時(shí)間了,相信大家肯定不陌生了,下面這篇文章主要給大家介紹了關(guān)于Android中RecyclerView的item寬高問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08