在Android中实现Java和Js交互,通常只需要以下几步,
1.WebView开启JavaScript脚本执行
2.WebView设置供JavaScript调用的交互接口
3.客户端和网页端实现调用的接口

JAVA

    private WebView mWebView;    private JSInterface mInterface;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mInterface = new JSInterface();        mWebView = (WebView) findViewById(R.id.webview);        mWebView.getSettings().setJavaScriptEnabled(true);        mWebView.setWebViewClient(new WebViewClient());        mWebView.setWebChromeClient(new WebChromeClient());        mWebView.addJavascriptInterface(mInterface, "EventJavascriptInterface");        mWebView.loadUrl("http://XXXXXXXXX/js-call-1.html");    }    //Java调用JavaScript    public void callJSButton(View v){        String para1 = "Para1";        int para2 = 2;        boolean para3 = true;        mWebView.loadUrl(String.format("javascript:testJavaCall(\"%s\",%s,%s)",                para1,para2,para3));    }    public void refreshButton(View v){        mWebView.reload();    }

Interface

public class JSInterface {    @JavascriptInterface    public void testJSCall(){        Log.e("Test","testJSCall");    }    @JavascriptInterface    public void testJSCall(String para){        Log.e("Test","testJSCall para = "+para);    }    @JavascriptInterface    public String testJSCall1(){        return "This is a test";    }}

HTML

<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><script type="text/javascript"> function callJAVA(){ alert(window.EventJavascriptInterface.testJSCall1()); } function testJavaCall(arg1,arg2,arg3){ alert("testJavaCall: arg1="+arg1+", arg2="+arg2+", arg3="+arg3); } </script></head><body>This is my test html <br/><br/><a onClick="javascript:window.EventJavascriptInterface.testJSCall()" >点击调用java函数</a><br/><a onClick="javascript:EventJavascriptInterface.testJSCall('hello world')" >点击调用java函数并传递参数</a><br/><a onClick="callJAVA()" >点击调用java函数并返回结果</a><br/><br/></body></html>

更多相关文章

  1. Android(安卓)Service启动(二) bindService()启动过程以及原理解析
  2. Android之设置页面(PreferenceActivity使用)
  3. Android(安卓)IPC 通讯机制源码分析
  4. Android(安卓)登录界面调用输入法时让界面自动上移,使输入法不会
  5. Android(安卓)多媒体
  6. Android(安卓)WebView与Javascript交互
  7. android之Menu 实例与详解
  8. Android中点击按钮后隐藏输入法
  9. 箭头函数的基础使用

随机推荐

  1. Android的常用基本控件ImageView、ListVi
  2. Android(安卓)主题切换/换肤方案 研究(一
  3. Android——SQLite使用
  4. 我的Android第一步
  5. android四大组件学习总结
  6. Android学习―LinearLayout布局中实现左
  7. Android(安卓)的消息队列模型
  8. Android(安卓)framework Watchdog的监控
  9. Android夸进程通信机制二:Parcel 与 Parce
  10. Android(安卓)JNI(Java Native Interface)