在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. Unity与Android接口互相调用
  2. Android Interface Definition Language (AIDL) android接口定义
  3. Android OpenGL库函数列表
  4. Android 访问Webservice接口,参数对象不能串行化问题解决(java.lan
  5. Android接口初了解
  6. Android 9.0 (P版本) 亮度控制接口变更
  7. Android中Adapter接口及其实现类详解
  8. Android Asynchronous Http Client-Android异步网络请求客户端接

随机推荐

  1. Android应用进程防杀指南2-双进程守护
  2. Android与物联网设备通信-网络模型分层
  3. Android(安卓)中View的绘制流程(结合图解
  4. 数据类型的转换与检测技术 、变量声明与
  5. 【Android初学者】Eclipse 资源管理器,文
  6. android 带手电筒的扫一扫(1 可以自动打开
  7. android在TextView的最后一行后面拼接vie
  8. android不在坑五:Android(安卓)Glide You
  9. Android软键盘在清单文件中所有属性解释
  10. 在电脑端加密的文件,放在android上进行解