zoukankan      html  css  js  c++  java
  • 获取WebView加载HTML时网页中的内容

    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.   
    7.     <WebView  
    8.         android:id="@+id/webView"  
    9.         android:layout_width="fill_parent"  
    10.         android:layout_height="fill_parent"  
    11.         android:layout_centerHorizontal="true"  
    12.         android:layout_centerVertical="true"  
    13.          />  
    14.   
    15. </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.      
    16.     @Override  
    17.     protected void onCreate(Bundle savedInstanceState) {  
    18.         super.onCreate(savedInstanceState);  
    19.         setContentView(R.layout.main);  
    20.         init();  
    21.     }  
    22.     private void init(){  
    23.         mWebView=(WebView) findViewById(R.id.webView);  
    24.         mWebView.getSettings().setJavaScriptEnabled(true);  
    25.         mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");  
    26.         mWebView.getSettings().setSupportZoom(true);  
    27.         mWebView.getSettings().setDomStorageEnabled(true);  
    28.         mWebView.getSettings().setPluginsEnabled(true);  
    29.         mWebView.requestFocus();  
    30.         mWebView.getSettings().setUseWideViewPort(true);  
    31.         mWebView.getSettings().setLoadWithOverviewMode(true);  
    32.         mWebView.getSettings().setSupportZoom(true);  
    33.         mWebView.getSettings().setBuiltInZoomControls(true);  
    34.         mWebView.loadUrl("http://www.baidu.com");  
    35.         mWebView.setWebViewClient(new WebViewClient() {  
    36.             @Override  
    37.             public void onPageStarted(WebView view, String url, Bitmap favicon) {  
    38.                 super.onPageStarted(view, url, favicon);  
    39.             }  
    40.   
    41.             @Override  
    42.             public boolean shouldOverrideUrlLoading(WebView view, String url) {  
    43.                 view.loadUrl(url);  
    44.                 return true;  
    45.             }  
    46.   
    47.             @Override  
    48.             public void onPageFinished(WebView view, String url) {  
    49.                 super.onPageFinished(view, url);  
    50.                 view.loadUrl("javascript:window.local_obj.showSource('<head>'+"  
    51.                         + "document.getElementsByTagName('html')[0].innerHTML+'</head>');");  
    52.   
    53.             }  
    54.   
    55.             @Override  
    56.             public void onReceivedError(WebView view, int errorCode,  
    57.                     String description, String failingUrl) {  
    58.                 super.onReceivedError(view, errorCode, description, failingUrl);  
    59.             }  
    60.   
    61.         });  
    62.     }  
    63.       
    64.     final class InJavaScriptLocalObj {  
    65.         public void showSource(String html) {  
    66.             System.out.println("====>html="+html);  
    67.         }  
    68.     }  
    69. }  
  • 相关阅读:
    jQuery Validate 验证成功时的提示信息
    MySQL定时任务实现方法
    tp5获取器的用法。
    使用layui异步请求上传图片在tp5.1环境下出现“请对上传接口返回json”的错误的解决方法
    微信小程序底部菜单栏的使用方法
    接口测试中的接口到底是什么?
    【web自动化测试】requests-html 这个解析库,能让你更轻松的获取网页内容
    一个软件测试小白的进阶之路
    Python进阶:@property 动态属性
    百度网盘限速怎么办?
  • 原文地址:https://www.cnblogs.com/zhwl/p/3375775.html
Copyright © 2011-2022 走看看