zoukankan      html  css  js  c++  java
  • 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   });
  • 相关阅读:
    matlab软件-了解
    C# 自定义异常demo
    C#二进制对象copy
    asp.net 缓存依赖demo
    权限管理细粒度问题
    三层架构中的异常处理二
    如何解决复杂问题——结构化思维方式
    入职新公司如何熟悉项目
    专业工具使用与复杂大型项目设计管理
    十分钟学会 tmux
  • 原文地址:https://www.cnblogs.com/phj981805903/p/3291675.html
Copyright © 2011-2022 走看看