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

Android WebView 获取网页数据(html)

2016-04-24 20:41 591 查看


Android WebView 获取网页数据(html)

发表于7个月前(2015-09-25 11:20)   阅读(813) | 评论(0) 7人收藏此文章, 我要收藏

赞0

4月23日,武汉源创会火热报名中,期待您的参与>>>>>   


目录[-]

1. activity_main.layout
2. MainActivity.java
3. 在AndroidManifest.xml

1. activity_main.layout

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


2. MainActivity.java

package com.example.webviewhtml;

import android.app.Activity;  
import android.graphics.Bitmap;  
import android.os.Bundle;  
import android.webkit.JavascriptInterface;
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.activity_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);  
            }  
  
        });  
    }  
    
    /**
     *  android sdk api >= 17 时需要加@JavascriptInterface
     * @author fei
     *
     */
    final class InJavaScriptLocalObj {  
    	@JavascriptInterface
        public void showSource(String html) {  
            System.out.println("====>html="+html);  
        }  
    }  
}


3. 在AndroidManifest.xml

增加权限:

<uses-permission android:name="android.permission.INTERNET" />

分享到: 

 

0赞

原文地址:http://m.blog.csdn.net/blog/hellohaifei/9331631

« 上一篇

下一篇 »

最新热门职位
更多开发者职位上 开源中国·招聘



测试工程师 恒生电子

月薪: 10-18K




软件开发工程师 慧控电子

月薪: 4-10K




java高级软件工程师 国富通

月薪: 10-15K






Java开发工程师 鼎盛视讯

月薪: 8-12K



评论

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