码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2016-04-27 19:03:59      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:android   图片   webview   js   内容   

如题,在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>;
}

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

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

标签:android   图片   webview   js   内容   

原文地址:http://qq445493481.blog.51cto.com/9545543/1768288

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!