JS与Android原生交互

来源:互联网 发布:turn.js翻页触发动画 编辑:程序博客网 时间:2024/06/08 13:05

JSAndroid原生交互

在项目的开发中我们会遇到android 原生与Html5的混合开发,我们可能会需要在android中调用js里面的方法进行数据交互或其他的特殊处理,又或者在Html页面调用android的原生的统一弹框或其他处理。这时候我们就需要给android和js设置接口,进行相互的调用。


1android中设置JS对应的对象类JavaScriptObject

Android中设置JS的调用类,用于处理js调用android的方法,方法需标示@JavascriptInterface,否则不能调用到;

public class JavaScriptObject{   public static final String obj = "javaObj";   //统一的类名   Context mContxt;   public JavaScriptObject(Context mContxt)   {      this.mContxt = mContxt;   }   @JavascriptInterface   public void funFromAndroid()   {      Toast.makeText(mContxt, "I am android!", Toast.LENGTH_LONG).show();   }      @JavascriptInterface   public void openDialog()   {      CenterPopDialog dialog = new CenterPopDialog(mContxt,"标题","人生若只如初见!",2,"cancel","ok")      {         @Override         public void left()         {            dismiss();         }         @Override         public void right()         {            dismiss();         }      };      dialog.show();   }}

2、webview中设置

webView.addJavascriptInterface(new JavaScriptObject(WebViewDef.this), JavaScriptObject.obj);


3、JS中调用Android的方法

<html>   <head>      <meta charset="utf-8">      <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />      <title></title>      <script type="text/javascript">         function fromAndroid()         {            javaObj.funFromAndroid();         }function funFromJS(msg){     alert(msg);}      </script>   </head>   <body>      <button type="button" onclick="fromAndroid()">提示</button>      <button type="button" onclick="javaObj.openDialog()">弹出dailog</button>   </body></html>


4、Android调用JS的方法

webView.loadUrl(“javascript:funFromJS(‘”+msg+”’)”);






原创粉丝点击