如题,在Android中WebView获取网页中标题 ,内容, 图片的方法

首先是获取标题,在new WebChromeClient(){}中重写onReceivedTitle()方法

@Overridepublic void onReceivedTitle(WebView view, String title) {super.onReceivedTitle(view, title);//loge.e("__页面标题__"+title);}

2016-5-11注:看别的项目看到的,也可以在

onProgressChanged(WebView view, int newProgress)

方法里直接获取网页标题

view.getTitle()

获取内容,是参考的这边的

http://blog.csdn.net/hellohaifei/article/details/9331631

首先是除了最基本的那些再多添加一堆设置

WebSettings settings = mWebview.getSettings();mWebview.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj"); settings.setSupportZoom(true);    settings.setDomStorageEnabled(true);            mWebview.requestFocus();            settings.setSupportZoom(true);            settings.setBuiltInZoomControls(true);

然后是写个类

public final class InJavaScriptLocalObj {            @JavascriptInterface          public void showSource(String html) {            Log.e("", "______"+html+"____");        }        }

最后是在new WebViewClient(){}的onPageFinished()方法里加上调用js方法

@Overridepublic void onPageFinished(WebView view, String url) {// TODO Auto-generated method stubsuper.onPageFinished(view, url);/**这个是为了加载网页内容*/view.loadUrl("javascript:window.local_obj.showSource(document.getElementsByTagName('article')[0].innerText);");   }

这个方法语句和参考的网页有点不一样,那个是打印全部的信息,包括一些标签,而这个只是打印网页纯文本内容.

后来因为产品要求,分享不带内容,分享说明直接按微信来,放网址,不过图片要放第一张图,所以,就得把上面的句子改一下了

/**这个是加载网页首图的*/view.loadUrl("javascript:window.local_obj.showSource(document.getElementsByTagName('img')[0].src);");

两个都需要就得另外写了,具体不知道

因为代码有混淆,所以需要在proguard-project.txt里说明

#webview与js交互需注意#保留annotation, 例如 @javascriptInterface 等 annotation-keepattributes *Annotation*#保留跟 javascript相关的属性 -keepattributes JavascriptInterface#保留JavascriptInterface中的方法-keepclassmembers class * {    @android.webkit.JavascriptInterface ;}#这个根据自己的project来设置,这个类用来与js交互,所以这个类中的 字段 ,方法, 等尽量保持-keepclassmembers public class com.tugouzhong.activity.WebviewActivity{   ;   ;   public *;}#这个类 必须保留,这个类在WVJBWebViewClient中传递数据,如果被混淆 会导致一些callback无法调用-keep class com.packgename.custom.WVJBWebViewClient$WVJBMessage#类中成员的变量名也不能混淆,这些变量名被作为json中的字段,不能改变。-keepclassmembers class com.tugouzhong.activity.WebviewActivity$InJavaScriptLocalObj{    ;}

网上找到,测了没问题,先凑合用

更多相关文章

  1. Android Activity之间传递图片(Bitmap)的方法
  2. 用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
  3. Android获取IPV4的方法
  4. 【安卓】Android播放器的三种实现方法
  5. Android系统手机端抓包方法
  6. 实现Android ListView 自动加载更多内容
  7. 3.1如何编写程序界面&3.2常见控件使用方法
  8. android实现获取有线和无线Ip地址的方法
  9. Android中数据存储的5中方法

随机推荐

  1. Android(安卓)SDK无法更新问题解决
  2. Android(安卓)编译环境搭建
  3. Android(安卓)Studio NDK开发浅谈
  4. Android(安卓)video streaming and encod
  5. Android实现CoverFlow效果
  6. Android(安卓)Timer 更好方法
  7. android studio 日期选择DatePickerDialo
  8. android imageview图片显示出来
  9. android常用方法汇总-更新中
  10. Android透明动画