获取WebView加载HTML时网页中的内容 获取页面元素

main.xml如下:
[html] 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 
 
    <WebView 
        android:id="@+id/webView" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_centerHorizontal="true" 
        android:layout_centerVertical="true" 
         /> 
 
</RelativeLayout> 
MainActivity如下:
[java] 
package com.example.testgetwebviewcontent; 
import android.app.Activity; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
/**
* Dmeo说明:
* 当WebView加载网页时获取该网页中的内容.
* 参考资料:
* http://www.maxters.net/2012/02/android-webview-get-html-source/
*/ 
public class MainActivity extends Activity { 
   private WebView mWebView; 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        init(); 
    } 
    private void init(){ 
        mWebView=(WebView) findViewById(R.id.webView); 
        mWebView.getSettings().setJavaScriptEnabled(true); 
        mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj"); 
        mWebView.getSettings().setSupportZoom(true); 
        mWebView.getSettings().setDomStorageEnabled(true); 
        mWebView.getSettings().setPluginsEnabled(true); 
        mWebView.requestFocus(); 
        mWebView.getSettings().setUseWideViewPort(true); 
        mWebView.getSettings().setLoadWithOverviewMode(true); 
        mWebView.getSettings().setSupportZoom(true); 
        mWebView.getSettings().setBuiltInZoomControls(true); 
        mWebView.loadUrl("http://www.baidu.com"); 
        mWebView.setWebViewClient(new WebViewClient() { 
            @Override 
            public void onPageStarted(WebView view, String url, Bitmap favicon) { 
                super.onPageStarted(view, url, favicon); 
            } 
 
            @Override 
            public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                view.loadUrl(url); 
                return true; 
            } 
 
            @Override 
            public void onPageFinished(WebView view, String url) { 
                super.onPageFinished(view, url); 
                view.loadUrl("javascript:window.local_obj.showSource('<head>'+" 
                        + "document.getElementsByTagName('html')[0].innerHTML+'</head>');"); 
 
            } 
 
            @Override 
            public void onReceivedError(WebView view, int errorCode, 
                    String description, String failingUrl) { 
                super.onReceivedError(view, errorCode, description, failingUrl); 
            } 
 
        }); 
    } 
     
    final class InJavaScriptLocalObj { 
        public void showSource(String html) { 
            System.out.println("====>html="+html); 
        } 
    } 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值