main.xml如下:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context=".MainActivity" >
  6. <WebView
  7. android:id="@+id/webView"
  8. android:layout_width="fill_parent"
  9. android:layout_height="fill_parent"
  10. android:layout_centerHorizontal="true"
  11. android:layout_centerVertical="true"
  12. />
  13. </RelativeLayout>

MainActivity如下:

  1. package com.example.testgetwebviewcontent;
  2. import android.app.Activity;
  3. import android.graphics.Bitmap;
  4. import android.os.Bundle;
  5. import android.webkit.WebView;
  6. import android.webkit.WebViewClient;
  7. /**
  8. * Dmeo说明:
  9. * 当WebView加载网页时获取该网页中的内容.
  10. * 参考资料:
  11. * http://www.maxters.net/2012/02/android-webview-get-html-source/
  12. */
  13. public class MainActivity extends Activity {
  14. private WebView mWebView;
  15. @Override
  16. protected void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.main);
  19. init();
  20. }
  21. private void init(){
  22. mWebView=(WebView) findViewById(R.id.webView);
  23. mWebView.getSettings().setJavaScriptEnabled(true);
  24. mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");
  25. mWebView.getSettings().setSupportZoom(true);
  26. mWebView.getSettings().setDomStorageEnabled(true);
  27. mWebView.getSettings().setPluginsEnabled(true);
  28. mWebView.requestFocus();
  29. mWebView.getSettings().setUseWideViewPort(true);
  30. mWebView.getSettings().setLoadWithOverviewMode(true);
  31. mWebView.getSettings().setSupportZoom(true);
  32. mWebView.getSettings().setBuiltInZoomControls(true);
  33. mWebView.loadUrl("http://www.baidu.com");
  34. mWebView.setWebViewClient(new WebViewClient() {
  35. @Override
  36. public void onPageStarted(WebView view, String url, Bitmap favicon) {
  37. super.onPageStarted(view, url, favicon);
  38. }
  39. @Override
  40. public boolean shouldOverrideUrlLoading(WebView view, String url) {
  41. view.loadUrl(url);
  42. return true;
  43. }
  44. @Override
  45. public void onPageFinished(WebView view, String url) {
  46. super.onPageFinished(view, url);
  47. view.loadUrl("javascript:window.local_obj.showSource('<head>'+"
  48. + "document.getElementsByTagName('html')[0].innerHTML+'</head>');");
  49. }
  50. @Override
  51. public void onReceivedError(WebView view, int errorCode,
  52. String description, String failingUrl) {
  53. super.onReceivedError(view, errorCode, description, failingUrl);
  54. }
  55. });
  56. }
  57. final class InJavaScriptLocalObj {
  58. public void showSource(String html) {
  59. System.out.println("====>html="+html);
  60. }
  61. }
  62. }

获取WebView加载HTML时网页中的内容的更多相关文章

  1. Android中通过Java获取Webview加载内容

    有时候我们需要在加载webview时,获取加载完成的内容,当然,WebView也是有可能包含javascript.通过以下操作,我们是可以获取到WebView加载的内容. 1.自定义一个内部类,获取W ...

  2. 获取WebView加载的网页内容并进行动态修改

    http://www.jianshu.com/p/3f207a8e32cb [Android]WebView读取本地图片 http://www.cnblogs.com/kimmy/p/4769788. ...

  3. Android项目实战(五十六):获取WebView加载的url的请求错误码

    例如需求,我有一个WebView 加载一个url, 该url对应的网页本身自带下拉刷新 ,但是网页本身会有出现400 500 等异常请求错误码 这时候网页加载失败,页面本身的下拉是无法使用的,要求重新 ...

  4. WebView加载html实现网页上传本地文件(图片,拍照,语音等)

    前言: 这里有两个方案,第一个使用Andorid客户端和JavaScript互相调用方法来实现,这种方法极力不推荐,它会增加服务端和客户端的开发成本. 第二种就是继承WebViewChromeClie ...

  5. iOS中webView加载URL需要处理特殊字符

    今天在项目中遇到webView加载URL时,因为URL中有特殊字符,导致页面无法加载,而且在- (BOOL)webView:(UIWebView )webView shouldStartLoadWit ...

  6. Android 编程下 WebView 加载一个网页如何得到网页的 Cookie 值

    http://www.cnblogs.com/sunzn/archive/2013/04/03/2998113.html mWebView.setWebViewClient(new MyWebView ...

  7. WebView加载失败或网络异常时,替换WebView的错误界面;

    WebView在加载失败时会显示一个失败原因的界面,各个手机显示的界面还都不一样,部分手机还会把Url显示出来:我们要做的就是统一加载失败的界面: 大概思路:在WebView这个控件上面再覆盖一个Vi ...

  8. Android WebView 加载富文本内容

    WebView加载数据的方式有两种: 1. webView.loadUrl(data);//加载url 2. webView.loadDataWithBaseURL(null,data, " ...

  9. Android中Http加载如何得到Cookie和 WebView 加载网页如何得到的Cookie

    最近做项目在手机端登录Http请求和 WebView 记载登录获取Cookie信息,可查看Cookie信息. 如图: Http请求获取Cookie信息: public static String re ...

随机推荐

  1. LINQ Enumerable 续

    筛选序列 Enumerable.Distinct 对于复杂的对象列表,运行时引擎如何才能通过比较确定两个对象是否重复?对于复杂对象,必须提供一个比较器,即实现IEqualityComparer(Of ...

  2. .Net程序员 Solr-5.3之旅 (三)Solr 从MSSQ导入索引数据

    阅读目录 引言 准备工作 data-config.xml schema.xml 导入数据 结尾 附件下载 引言 Other men live to eat, while I eat to live.- ...

  3. Linux下批量替换文件内容方法

    1:查找find . -type f -name "*.html"|xargs grep ‘yourstring’ 2:查找并替换find -name '要查找的文件名' | xa ...

  4. 删除MSMQ中的消息队列时"访问被拒绝的错误"

    删除MSMQ中消息队列时出现 google之,发现也没有找到解决方法,自己在琢磨一下,一般出现这种问题的都是权限问题,因此查看了一下属性,果然如此 此消息队列是使用Windows服务创建的 解决办法: ...

  5. Oracle数据库之创建表空间与用户

    Oracle数据库之创建表空间与用户 一.创建表空间 基本语法表述: CREATE TABLESPACE tablespace_name [DATAFILE datafile_spec1 [,data ...

  6. jQuery上传插件Uploadify 3.2使用

    Uploadify下载地址:http://www.uploadify.com/download/ 这里下载最新版的3.2的. 常用API描述: $(document).ready(function() ...

  7. C# 将XML格式字符串,写入数据集的表中 XML解析

    将XML格式字符串,写入数据集的表1中   命名空间:using System.Xml;               string strRead;//strRead为以下xml值           ...

  8. 郝斌老师C语言学习笔记(一)

    在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以“85”开头的很大的数字(此时该段内存中为一个垃圾数,为了避免出现较常 ...

  9. AE-后期制作的基本技能-小视频-实践!!

    这是本人学习AE软件的实践练习,看来,学习基本技能要慢慢来,稳步前进,一步一个脚印才对!!同时,多观看别人的作品,多看一下电视上面的片头,广告的效果;学习AE要带着问题,思路来学习!多做理论联系实际操 ...

  10. obj文件的连接问题以及tlib的基本用法

    1.基础研究 用tcc将程序编译为.obj文件. 这里也可以使用tcc -linclude run.c来将run.c文件编译成run.obj文件. 再用tcc对下面的程序进行编译链接,发现提示错误: ...