android webview 获取网页内容,在WebView中获取网页中的内容
原理:重寫WebViewClient的onPageFinished方法,在onPageFinished中加載一段js代碼,js代碼再調(diào)用本地方法
用下面的方法可以獲取網(wǎng)頁的html源碼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('
'+"?+"document.getElementsByTagName('html')[0].innerHTML+'');");
super.onPageFinished(view,?url);
}
}
final?class?InJavaScriptLocalObj?{
public?void?showSource(String?html)?{
Log.d("HTML",?html);
}
}
}
總結(jié)
以上是生活随笔為你收集整理的android webview 获取网页内容,在WebView中获取网页中的内容的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android多线程文章,Android
- 下一篇: android调用oncreate,An