Android WebView 获取网页数据(html)

来源:互联网 发布:淘宝上外贸是正品吗 编辑:程序博客网 时间:2024/05/28 15:07

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

    评论

    0 0
    原创粉丝点击