Android: 在WebView中获取网页源码
2011-10-26 10:43
567 查看
1. 使能javascript:
2. 编写本地接口
3. 向网页暴露本地接口
4. 编写自己的WebViewClient,并在onPageFinished中提取网页源码。
组合在一起的代码为:
关键之处在于:
view.loadUrl("javascript:window.local_obj.showSource('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
运行,可以看到在showSource(String html)中打印了网页源码。
webView.getSettings().setJavaScriptEnabled(true);
2. 编写本地接口
final class InJavaScriptLocalObj { public void showSource(String html) { Log.d("HTML", html); } }
3. 向网页暴露本地接口
webView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");
4. 编写自己的WebViewClient,并在onPageFinished中提取网页源码。
final class MyWebViewClient extends WebViewClient{ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.d("WebView","onPageStarted"); super.onPageStarted(view, url, favicon); } public void onPageFinished(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 extends Activity {
private WebView webView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView)findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");
webView.setWebViewClient(new MyWebViewClient());
webView.loadUrl("http://www.cnblogs.com/hibraincol/");
}
final class MyWebViewClient extends WebViewClient{ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.d("WebView","onPageStarted"); super.onPageStarted(view, url, favicon); } public void onPageFinished(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); } }
final class InJavaScriptLocalObj { public void showSource(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 WebView 获取网页数据(html)
- Android webView 中 注入js 获取网页中的 图片
- webview可以获取网页源码,进行重新排版吗
- Android 浏览网页:WebView 嵌入浏览器(浏览历史返回、自定义加载失败界面、支持缩放、获取标题栏)
- 在webview中获取网页源码
- Android显示webview加载的网页源码
- Android-使用WebView获取百度页面源码
- ANDROID获取WEBVIEW中网页的TITLE(标题)信息