上一篇中将到了webView的基本使用,其实在Android中webView的使用非常的多,通过webView我们可以很方便的进行与js的交互。这样有利于进行混合编程。那么我们是怎么通过webView与js交互的呢。
第一:程序Java调用js代码
在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,然后通过loadUrl就可以直接进行调用,如下所示:
//获取webView控件 webView=(WebView) findViewById(R.id.webView1); //加载网页,这里的URL就是网页路径。 webView.loadUrl("file:///android_asset/hello.html"); //设置webview能否调用js webView.getSettings().setJavaScriptEnabled(true);这样的就可以将网页加载到我们的webView中并显示出来了。
第二:js代码调用程序中的Java代码
要实现js调用Java代码,需要在webView添加javascriptInterface
//给webView传递JAVA对象 webView.addJavascriptInterface(new Summary(), "plug");new Summary()既创建需要传递的对象
private class Summary{ public void sum(String i,String j){ Toast.makeText(MainActivity.this, i+j, Toast.LENGTH_LONG).show(); } }
<button type="button" onclick="sum()">summary</button>当用户点击网页中summary按钮之后,就会执行js中的sum(),通过 javascriptInterface传递过来的对象,实现对Java代码中Summary.sum()的调用。
<script type="text/javascript"> function sum(){ var i=document.getElementById("i").value; var j=document.getElementById("j").value; Summary.sum(i,j); } </script>
@SuppressLint("JavascriptInterface")