欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin語言使用WebView示例介紹

 更新時間:2022年09月07日 08:34:36   作者:枕上書531  
隨著后臺技術的不斷發(fā)展,App前端的應用都布置了Web頁面的界面,這個界面就是由WebView組件渲染出來的。WebView由如下優(yōu)點:可以直接顯示和渲染W(wǎng)eb頁面或者網(wǎng)頁;可以直接調用網(wǎng)絡上或者本地的html文件,也可以和JavaScript交互使用

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的支持

調用WebSetting類的setJavaScriptEnabled()方法,設置啟動JavaScript的支持

val webView:WebView=findViewById(R.id.webView)
webView.settings.javaScriptEnabled=true

2、目標的網(wǎng)頁仍然在當前WebView中顯示

調用WebView的setWebViewClient()方法,從一個網(wǎng)頁跳轉到另一個網(wǎng)頁時,跳轉的網(wǎng)頁也在webView中顯示

webView.webViewClient= WebViewClient()

3、將網(wǎng)址傳入

調用WebView的loadUrl方法,將網(wǎng)址傳入,顯示網(wǎng)頁內(nèi)容

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

AndroidManifest文件

加入權限聲明

訪問網(wǎng)絡時需要聲明權限的,在AndroidManifest中加入以下權限聲明

<uses-permission android:name="android.permission.INTERNET"/>

3、結合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、調用WebView的loadUrl()方法(注意是三條///)

val webView:WebView=findViewById(R.id.webView)
        webView.loadUrl("file:///android_asset/a.html")

5、于JavaScript交互調用

WebSetting類提供的常用方法

步驟

在布局文件中添加WebView,調用WebSetting類的setJavaScriptEnabled()方法,設置啟動JavaScript的支持,調用WebView的setWebViewClient()方法,調用WebView的loadUrl方法,將html文件傳入,新建JavaScriptObject類,調用addJavascriptInterface方法,這樣,我們就可以通過js直接使用app,執(zhí)行JavaScriptObject類里面的方法。

例子展示JavaScript調用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"文件添加電話的權限

<uses-permission android:name="android.permission.CALL_PHONE" />

運行結果如圖

到此這篇關于Kotlin語言使用WebView示例介紹的文章就介紹到這了,更多相關Kotlin WebView內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論