webview调用android代码

来源:互联网 发布:最靠谱网络兼职平台 编辑:程序博客网 时间:2024/06/17 15:18

在开发的时候经常会用到webview,必然会涉及到webview与客户端的交互,比如在网页上进行某个操作后,需要在app上显示一个提示,提示内容由网页提供,这时候就需要js来调用客户端的java代码了。

webview提供了一个方法addJavascriptInterface()来满足这种需求。

具体步骤:

1.客户端定义一个类,并定义需要的方法,例如:

public class WebAppInterface {               Context mContext;      /**       * Instantiate the interface and set the context       */           WebAppInterface(Context c) {               mContext = c;           }           /**            * Show a toast from the web page            */           @JavascriptInterface           public void showToastContent(String content) {           }    }    注意,在方法定义前加上@JavascriptInterface注解。

2 生成第一步中定义的类的实例并添加给webview。

webView.addJavascriptInterface(newWebAppInterface(getActivity()), "TestObject");

这里的”TestObject”是随便起的名字,你可以改成其他的。这个名字主要是让webview的js调用的。

3.在js中通过”TestObject”对象调用客户端方法
TestObject.showToastContent(“haha”)

备上一段官网关于这个内容的代码:

class JsObject {    @JavascriptInterface    public String toString() { return "injectedObject"; } } webView.addJavascriptInterface(new JsObject(), "injectedObject"); webView.loadData("", "text/html", null); webView.loadUrl("javascript:alert(injectedObject.toString())");