JavaScript 與WebView的交互入門遇到的問題

JavaScript與WebView交互有多種方法:這裏先試驗一下對象映射的方式。

1. 通過對象映射方式

    Android中通過   通過webView.addJavaScriptInterface(java對象,"javascript中可以看到的名字")

    html中通過事件點擊,調用(可以通過<a>標籤,或者定義button都可以調用)

2.具體的實現步驟:

      1.寫html的頁面

       2.Android要寫對應的實現代碼。

       1.html 頁面

功能:通過點擊事件,調起javascript代碼中的方法。

實現方法:可以通過<a>標籤,其中帶有onclick的事件,onclick後面帶上需要調用本地方法的javascript代碼。

這裏的實現是

<a onclick=“直接調用方法或javascript中的對象方法”></a>

例如:<a onclick="MyJsBridge.getUserInfo()">CallAndroidMethod</a>

注意: <a></a> 這個標籤不能寫在javascript腳本的標籤內部。而是應該寫在<body></body>的內部。

<html>
    <head>
        JS 與 Android 本地代碼交互
    </head>
    
<body>
    <!-- <button id="btn_java">invoke java</button> -->
    <a onclick="MyJsBridge.getUserInfo()">CallAndroidMethod</a>
    <!--<script type="text/javascript">-->
    <!--// var btn = document.getElementById("btn_java")-->
    <!--// btn.onclick=function() {-->
    <!--//     MyJsBridge.getUserInfo()-->
    <!--// }-->

        <!---->
    <!--</script>-->
</body>
</html>

   2.Android中的實現代碼:

final WebView webView = findViewById(R.id.my_webview);
webView.setWebViewClient(new MyWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(getMyJsBridge(), "MyJsBridge");
webView.loadUrl("file:///android_asset/js_native_interact.html");

WebView 與JavaScript交互,遇到的幾個問題:

   1)這個a標籤這個標籤放在html的body裏面,不能放在javascript語言的標記內部。

   2)webView要啓用Javascript。調用webView.getSettings().setJavaScriptEnabled(true);

   3) 對於無參數的方法調用,方法後面一定要加(),否則可能無法調用成功。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章