Android WebView與JS交互入門

首先在Anndroid代碼中對WebView進行初始化javascript

webView = (WebView) findViewById(R.id.webview);
        
// 啓用javascript
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Test(),"android");

class Test{
    @JavascriptInterface
    public void show(){

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(MainActivity.this,"show",3000).show();

            }
        });
    }
    @JavascriptInterface
    public void showText(String text){

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(MainActivity.this,text,3000).show();

            }
        });
    }
}

html的代碼以下html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<script type="text/javascript">

function javacalljs(){
     document.getElementById("content").innerHTML =
         "<br\>JAVA調用了JS的無參函數";
}

function javacalljswith(arg){
     document.getElementById("content").innerHTML =
         ("<br\>"+arg);
}
</script>
</head>
<body>
HTML 內容顯示 <br/>
<h1><div id="content">內容顯示</div></h1>
<br/>
<input type="button"  value="點擊調用java代碼" onclick="window.android.show()" />
<br/>
<input type="button"  value="點擊調用java代碼並傳遞參數" onclick="window.android.showText('你好')"  />
</body>
</html>

WebView與js交互主要分四種狀況前端

一、Android 調用HTML中的javascript腳本java

//調用js中無參方法
webView.loadUrl("javascript:javacalljs()");

二、HTML中的javascript腳本調用Android本地代碼android

window.android.show()

三、Android 調用HTML中的javascript腳本並傳遞參數web

//傳遞參數調用JS的方法
webView.loadUrl("javascript:javacalljswith(" + "'加班'" + ")");

四、HTML中的javascript腳本調用Android本地代碼並傳遞參數ide

window.android.showText('你好')

window後跟的android爲別名,須要前端開發人員與移動端開發人員定義統一的別名函數

相關文章
相關標籤/搜索