您现在的位置:首页 >> 前端 >> 内容

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

时间:2013/3/8 14:40:58 点击:

  核心提示:main.xml如下:[html] RelativeLayout xmlns:android=https://schemas.android.com/apk/res/android xmlns:too...
main.xml如下:

[html]  

<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"  

    xmlns:tools="https://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加载网页时获取该网页中的内容. 

 * 参考资料: 

 * https://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("https://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);  

        }  

    }  

}  

 

Tags:获取 取W WE EB 
作者:网络 来源:不详