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) 对于无参数的方法调用,方法后面一定要加(),否则可能无法调用成功。

猜你喜欢

转载自blog.csdn.net/bolang789/article/details/90142842