2019-05-15 js调原生Android方法

参考文章:https://juejin.im/post/5a806fba6fb9a06348535c9f

js调原生Android方法

首先允许webView可执行Js

 //允许Js交互与弹窗
webSettings.setJavaScriptEnabled(true);

然后实现一个管理类(JS桥),其中的所实现的方法就是Js可以调用的方法。

 public class SDK{
        @JavascriptInterface
        public void hello(String msg){
            Toast.makeText(TestActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    }

如上述hello方法,通过@JavascriptInterface注解来建立一个原生对象和Js对象的绑定,因此可以通过Js直接访问。

hello方法被调用,会传回一个msg参数供给Android客户端使用。
通过addJavascriptInterface方法传入 管理类对象和一个标识符(下面会提到)

 webView.addJavascriptInterface(new SDK(),"sdk");

而对于Html文件,内容如下。




    


点击按钮触发js的tz()事件,而js的tz()事件所执行的功能是跳转到百度,并且调用sdk.hello()方法传入的一个参数。

而这里的sdk就是上面所提到的标识符,后面的hello方法就是new SDK()这个对象所提供的的hello方法,Js执行了调用,Android客户端就会收到一个msg参数,从而弹出一个Toast。
由此可以实现Js调用Android的功能。

你可能感兴趣的:(2019-05-15 js调原生Android方法)