Android: 在WebView中获取网页源码
2016-08-11 15:22
411 查看
转载地址:http://www.cnblogs.com/hibraincol/archive/2011/10/26/2224866.html
1. 使能javascript:
webView.getSettings().setJavaScriptEnabled
4. 编写自己的WebViewClient,并在onPageFinished中提取网页源码
运行,可以看到在showSource(String html)中打印了网页源码。
1. 使能javascript:
webView.getSettings().setJavaScriptEnabled2. 编写本地接口
final class InJavaScriptLocalObj { publicvoidshowSource(String html) { Log.d("HTML", html); } }
3. 向网页暴露本地接口
webView.addJavascriptInterface(newInJavaScriptLocalObj(),"local_obj");4. 编写自己的WebViewClient,并在onPageFinished中提取网页源码
final class MyWebViewClient extendsWebViewClient{ publicbooleanshouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); returntrue; } publicvoidonPageStarted(WebView view, String url, Bitmap favicon) { Log.d("WebView","onPageStarted"); super.onPageStarted(view, url, favicon); } publicvoidonPageFinished(WebView view, String url) { Log.d("WebView","onPageFinished "); view.loadUrl("javascript:window.local_obj.showSource('<head>'+"+ "document.getElementsByTagName('html')[0].innerHTML+'</head>');"); super.onPageFinished(view, url); } }
组合在一起的代码为:
package com.hi.briancol.htmlsource; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.webkit.WebView; import android.webkit.WebViewClient; public class HtmlSource extendsActivity { privateWebView webView; /** Called when the activity is first created. */ @Override publicvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); webView = (WebView)findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(newInJavaScriptLocalObj(),"local_obj"); webView.setWebViewClient(newMyWebViewClient()); webView.loadUrl("http://www.cnblogs.com/hibraincol/"); } finalclassMyWebViewClient extendsWebViewClient{ publicbooleanshouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); returntrue; } publicvoidonPageStarted(WebView view, String url, Bitmap favicon) { Log.d("WebView","onPageStarted"); super.onPageStarted(view, url, favicon); } publicvoidonPageFinished(WebView view, String url) { Log.d("WebView","onPageFinished "); view.loadUrl("javascript:window.local_obj.showSource('<head>'+"+ "document.getElementsByTagName('html')[0].innerHTML+'</head>');"); super.onPageFinished(view, url); } } finalclassInJavaScriptLocalObj { publicvoidshowSource(String html) { Log.d("HTML", html); } } }
关键之处在于:
view.loadUrl("javascript:window.local_obj.showSource('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");运行,可以看到在showSource(String html)中打印了网页源码。
相关文章推荐
- Android:在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- android系列: 在WebView中获取网页源码
- android 获取当前webview显示的网页的源码和网页中框架的源码
- Android: 在WebView中获取网页源码
- Android 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android:在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- 【Android】Android WebView 网页输入框获取焦点
- Android WebView 获取网页数据(html)
- Android WebView 获取网页数据(html)
- Android WebView中获取网页的title
- Android WebView 获取网页的标题
- 在webview中获取网页源码
- Android 从WebView缓存中获取网页图片
- Android之获取WebView所加载网址网站的源码