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

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

@OverridepublicvoidonReceivedTitle(WebViewview,Stringtitle){super.onReceivedTitle(view,title);//loge.e("__页面标题__"+title);}

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

onProgressChanged(WebViewview,intnewProgress)

方法里直接获取网页标题

view.getTitle()

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

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

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

WebSettingssettings=mWebview.getSettings();mWebview.addJavascriptInterface(newInJavaScriptLocalObj(),"local_obj");settings.setSupportZoom(true);settings.setDomStorageEnabled(true);mWebview.requestFocus();settings.setSupportZoom(true);settings.setBuiltInZoomControls(true);

然后是写个类

publicfinalclassInJavaScriptLocalObj{@JavascriptInterfacepublicvoidshowSource(Stringhtml){Log.e("","______"+html+"____");}}

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

@OverridepublicvoidonPageFinished(WebViewview,Stringurl){//TODOAuto-generatedmethodstubsuper.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相关的属性-keepattributesJavascriptInterface#保留JavascriptInterface中的方法-keepclassmembersclass*{@android.webkit.JavascriptInterface<methods>;}#这个根据自己的project来设置,这个类用来与js交互,所以这个类中的字段,方法,等尽量保持-keepclassmemberspublicclasscom.tugouzhong.activity.WebviewActivity{<fields>;<methods>;public*;}#这个类必须保留,这个类在WVJBWebViewClient中传递数据,如果被混淆会导致一些callback无法调用-keepclasscom.packgename.custom.WVJBWebViewClient$WVJBMessage#类中成员的变量名也不能混淆,这些变量名被作为json中的字段,不能改变。-keepclassmembersclasscom.tugouzhong.activity.WebviewActivity$InJavaScriptLocalObj{<fields>;}

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

更多相关文章

  1. 【android】ORMLite框架 的使用方法---给你的数据库操作插上翅膀
  2. Android中fragment A里面点击button跳转到fragment B实现方法
  3. 关于android的listview的数据解析和性能优化问题
  4. android 中 unable to start service 错误解决方法
  5. Android(安卓)-- 过滤器相关
  6. 学习Android从0开始之基础篇(1)-Android的四大基本组件
  7. 代码混淆
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. 我的实习面经(Android开发,已拿阿里,华为,CVT
  2. 可左右两侧挤压傍边布局的Android抽屉
  3. Android内存监控与分析(二):最常遇见的内存
  4. Android中的布局方式(一)
  5. Android提高十六篇之使用NDK把彩图转换灰
  6. Android(安卓)多分辨率自适应总结
  7. Android系统的Root权限获取与检测
  8. Android实现登录功能,Android与服务器数据
  9. 一个小码农的5年历程
  10. Android(安卓)面试题(答案最全)