在Android上怎样实现JAVA和JS交互

JavaScript026

在Android上怎样实现JAVA和JS交互,第1张

android调用js方法比较简单,一行代码搞定。

mWebView.loadUrl("javascript:test('" + aa+ "')")//test就是你js方法,然后是参数

然后是js调用android方法,比较复杂。

<a onclick="window.wst.test2(2)">b.c</a>

这个window.wst的wst就是Android中自己定义的标识名称,clickOnAndroid方法就是安卓中自定义的方法名。

mWebView.addJavascriptInterface(new MyTest(), "wst")//给android添加一个js接口,标识名称wst

//这里的代码是个类部类

private final class MyTest{

 @JavascriptInterface

 public void clickOnAndroid(int number) {

    MyActivity.this.runOnUiThread(new Runnable() {

        @Override

        public void run() {

          Log.i("number",number)//这里所有代码必须写到主线程中,否则报错。

        }

    })

  }

}

这样就能实现js调用android。

两个方法最重要的都是要启用webview的js功能。

// 启用javascript

mWebView.getSettings().setJavaScriptEnabled(true)

哪里不懂可以继续追问我

问的问题本身就是错误的,没有所谓的js与java交互,只有浏览器与服务器交互,无论是传统页面跳转还是ajax都是浏览器与服务器交互。js可以被其它浏览器脚本语言替代,java也可以被其它服务器语言替代。作为语言本身,并不与另外语言有所交集。

本质上都是http请求,一个请求分为请求行、请求头、和请求体