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

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

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

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

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

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方法

@Override
			public void onPageFinished(WebView view, String url) {
				// TODO Auto-generated method stub
				super.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 <methods>;
}

#这个根据自己的project来设置,这个类用来与js交互,所以这个类中的 字段 ,方法, 等尽量保持
-keepclassmembers public class com.tugouzhong.activity.WebviewActivity{
   <fields>;
   <methods>;
   public *;
}
#这个类 必须保留,这个类在WVJBWebViewClient中传递数据,如果被混淆 会导致一些callback无法调用
-keep class com.packgename.custom.WVJBWebViewClient$WVJBMessage
#类中成员的变量名也不能混淆,这些变量名被作为json中的字段,不能改变。
-keepclassmembers class com.tugouzhong.activity.WebviewActivity$InJavaScriptLocalObj{
    <fields>;
}

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

时间: 2024-08-24 09:37:29

Android中WebView获取网页中标题 ,内容, 图片的方法的相关文章

Android WebView 获取网页的标题

final TextView txtTitle = (TextView) findViewById(R.id.txtTitle); final WebView webView = (WebView)findViewById(R.id.btnWebView); WebChromeClient wvcc = new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { super

php获取网页中图片与DIV内容实例

分享下php获取网页中图片.DIV内容的简单方法,都是通过正则表达式实现的. 1.获取网页中所有的图片: <?php //取得指定位址的內容,并储存至 $text $text=file_get_contents('http://www.jbxue.com/'); //取得所有img标签,并储存至二维数组 $match 中 preg_match_all('/<img[^>]*>/i', $text, $match); //打印出match print_r($match); ?>

javaScript 实现倒计时 + 获取网页中的文字

一.倒计时 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>文档标题</title> </head> <body> <p id="demo"></p> <script> // Set the date we're counting down to var count

使用selenium的方式获取网页中图片的链接和网页的链接,来判断是否是死链(二)

上一篇使用Java正则表达式来判断和获取图片的链接以及跳转的网址,这篇使用selenium的自带的API(getAttribute)来获取网页中指定的内容 实现内容:获取下面所有图片的链接地址以及跳转地址,使用get请求判断是否有死链 页面内容如图: 页面的源码,需要获取页面的href后的地址,以及src后的地址,: 代码实现可以看出图片都在一个div中,实现的思想为:获取控件集合,在获取每一个li下的元素,在获取,在取出数据下的属性名的属性值 public void new_classific

JS获取网页中HTML元素的几种方法分析

getElementById getElementsByName getElementsByTagName 大概介绍 getElementById ,getElementsByName ,getElementsByTagName ###adv### 后两个是得到集合,byid只是得到单个对象 getElementById 的用法 举个例子: <a id="link1" name="link1" href=http://homepage.yesky.com>

C#获取网页中某个元素的位置,并模拟点击

我们在开发中,往往要得到网页中某个元素的位置,并且点击它.要模拟一次鼠标点击并不难,只要调用一个API就行了,关键就是怎么样得到这个元素的位置,还有判断是否要滚动滚动条,要滚动多少行能让元素显示出来.当然我们可以动态改变它的CSS,让它在特定的位置显示出来,但这个方法只对比较简单的网页有效. 那我们怎么才能得到网页的位置呢,首先我们来看一张图片 从这里我们可以看到五个offset的属性,这里我们主要利用offsetparent, offsetleft 和offsettop,我们用offsetpa

【JSP EL】EL表达式 获取list长度/不用循环,EL在List中直接获取第一项的内容/EL获取Map的键,Map的值

1.EL表达式 获取list长度 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <c:if test="${fn:length(list名字)>1}"&g

jQuer获取网页中的img的真实尺寸

var allImg = $('.content').find('img'); allImg.each(function() {  var self = this;  var newImg = new Image();  newImg.src = this.src;  newImg.onload = function() {    if(newImg .width > 743) {      self.width = 743;    }  }; }); 上图 使用前 使用后 jQuer获取网页中

Android使用WebView显示网页(图片缩放)

上周写了一篇关于webview的博文:Android使用WebView显示网页(图片大小的处理及内容的自适应) 后来通过自己想的第三种办法实现了图片的适配,方法是设置html的img标签属性,把图片的宽度设置为设备屏幕的宽度,涉及的知识点就是,获取设备宽度值.java代码 添加/修改 html标签属性. 1. 获取设备屏幕信息: /** * 获取设备的屏幕信息 * @param activity * @return */ public static DeviceInfo getDevicesPi