webView与js交互

上一篇中将到了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();
		 }
	 }


在网页中只需要像调用js方法一样调用即可
<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>

PS:高版本的API在使用addJavascriptInterface时需要加上

@SuppressLint("JavascriptInterface")


 

你可能感兴趣的:(JavaScript,android,webView)