您的位置:首页 > 移动开发

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

2016-10-05 17:55 483 查看
main.xml如下:

[html] view
plaincopy

<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] view
plaincopy

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);  

        }  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  WebView