Android调用WebView的JS和JS调用Android的方法

来源:互联网 发布:twitter第三方登录js 编辑:程序博客网 时间:2024/06/05 06:35

① Android调用WebView的JS

第一步,开启JS调用

 WebSettings settings = webview.getSettings();   //设置与Js交互的权限 settings.setJavaScriptEnabled(true);

第二步,在HTML文件中写好要被调用的JS方法

function javaCallJs(params){     $('#closegrjkda').html(params);}

上面的params是从Android端传进去的参数

注意:这个JS函数必须是在全局范围的,这样才能被访问到,不要放进局部,例如:

$(function(){    //不能放进这里});

第三步,在Android直接调用

 webview.loadUrl("javascript:javaCallJs('params')");

注意:参数的传递一定要严格按照JS的写法,例如上面传递一个字符串,必须加单引号,其次,如果要改变HTML中的UI,必须在主线程操作,如下

runOnUiThread(new Runnable() {    @Override    public void run() {        Log.d(TAG, "run: ");        webview.loadUrl("javascript:javaCallJs('params')");    }});

上面Android调用WebView的JS完成。

②JS调用Android的方法
第一步,先写一个JS接口类,如下:

public class JsInterface {    /**     *  @JavascriptInterface 这个是一定要有的,否则不可以     * @param param     */    @JavascriptInterface    public void jsCallJava(final String param) {        Log.d(TAG, "jsCallJava: "+ param);    }}

注意: @JavascriptInterface 这个是一定要有的,否则调用失败

第二步,把上面写好的接口类,new 一个实例,传递到HTML页面

webview.addJavascriptInterface(new JsInterface(), "jsInterface");

注意:第二个参数,jsInterface 就是在HTML可以使用的实例,可以用jsInterface.jsCallJava(“123”)这样的方式调用函数。

第三步,在HTML直接调用

window.jsInterface.jsCallJava("jsCallJava");

注意:jsInterface就是传递过来的对象

至此,JS调用Android的方法完成

原创粉丝点击