1、在WebViewClient的onPageFinished里面调用如下方法
private void addImageClickListener(WebView webView) { webView.loadUrl("javascript:(function(){" + "var objs = document.getElementsByTagName(\"img\"); " + "var imgsxx = new Array(objs.length);" + "for(var i=0;i<objs.length;i++) " + "{" + " imgsxx[i]=objs[i].src;" + " var position=i;" + " objs[i].onclick=function() " + " { " + " window.imageListener.open(imgsxx,this.src); " +//通过js代码找到标签为img的代码块,设置点击的监听方法与本地的openImage方法进行连接 " } " + "}" + "})()"); }
2、定义JS交互接口MJavascriptInterface
public class MJavascriptInterface { private Activity mActivity; public MJavascriptInterface(Activity activity) { mActivity = activity; } /** * * @param imgs * @param img */ @android.webkit.JavascriptInterface public void open(final String[] imgs, final String img) { } }
3、WebView设置
WebSettings webSettings = getSettings(); webSettings.setUserAgentString(webSettings.getUserAgentString()); webSettings.setJavaScriptEnabled(true); // 设置webview支持JavaScript addJavascriptInterface(new MJavascriptInterface((Activity) getContext()), "imageListener"); webSettings.setJavaScriptCanOpenWindowsAutomatically(true);