蹒跚走路的程序猿

Android 查看webview里面的图片

  今天介绍一下怎么查看WebView里面的图片,首先要设置WebView能够支持JavaScript,然后实现JavaScript的监听接口:

1 mWebView.getSettings().setJavaScriptEnabled(true);
2 mWebView.addJavascriptInterface(
3   new JavascriptInterface(this.getActivity()), "ImageListener");

  下面是JavaScript接口的代码:

 1 /*
 2      * javascript interface
 3      */
 4     public class JavascriptInterface {
 5         private Context context;
 6 
 7         public JavascriptInterface(Context context) {
 8             this.context = context;
 9         }
10 
11         public void ClickImage(String imageUrl) {
12             Intent intent = new Intent();
13             intent.putExtra("ImageUrl", imageUrl);
14             LogHelper.i(imageUrl);
15             intent.setClass(context, WebViewImageActivity.class);
16             context.startActivity(intent);
17         }
18     }

  在WebView的图片上添加事件:

1 private void InjectWebViewClickListener() {
2         StringBuilder str = new StringBuilder();
3         str.append("javascript:(function(){");
4         str.append("$('img').each(function(idx,obj){");
5         str.append("$(obj).click(function(){");
6         str.append("window.ImageListener.ClickImage($(obj).attr('src'));");
7         str.append("});});})()");
8         mWebView.loadUrl(str.toString());
9     }

  最后在WebView的WebViewClient里调用这个事件:

 1 mWebView.setWebViewClient(new WebViewClient() {
 2    @Override
 3    public void onReceivedError(WebView view, int errorCode,
 4      String description, String failingUrl) {
 5     super.onReceivedError(view, errorCode, description, failingUrl);
 6    }
 7 
 8    @Override
 9    public void onPageFinished(WebView view, String url) {
10     super.onPageFinished(view, url);
11     // html加载完成之后,添加监听图片的点击js函数
12     InjectWebViewClickListener();
13    }
14 
15   });

 

posted on 2013-08-30 16:15  蹒跚走路的程序猿  阅读(366)  评论(0编辑  收藏  举报

导航