如题,在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播放器的三种实现方法
  2. Android端JQueryMobile使用教程(二)
  3. Android系统手机端抓包方法
  4. Android获取IPV4的方法
  5. Android错误解决方法大集合
  6. 用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
  7. Android(安卓)Activity之间传递图片(Bitmap)的方法
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. android recovery模式流程
  2. Android(安卓)四大组件流程、Handler、As
  3. (ios实现)用c/c++混合编程方式为ios/andr
  4. Kotlin Android
  5. Android(安卓)N Settings 架构剖析
  6. 正确获得android设备的IP地址
  7. Android的Proxy/Delegate Application框
  8. [软件]安卓手机 kindle app 手工导入mobi
  9. Android系统使用global key 一键启动指定
  10. Android(安卓)RenderScript 使用 Struct