我如何得到的WebView网页的源代码?
我要在我的WebView只输入www.google.com,当我进入这个网站,我想获得的来源例如:
字符串A = ........;(源)
解决方案
我不知道这是怎么远远将是有益的。但我用下面的代码片段获取一个小的html页面的数据。我希望它可以帮助你。
创建一个类类似下面,
类MyJavaScriptInterface
{
@燮pressWarnings(未使用)
公共无效processHTML(最后弦乐HTML)
{
Log.i(处理HTML,HTML);
螺纹OauthFetcher =新主题(新的Runnable(){
@覆盖
公共无效的run(){
字符串oAuthDetails = NULL;
oAuthDetails = Html.fromHtml(HTML)的ToString();
Log.i(oAuthDetails,oAuthDetails);
}
}); OauthFetcher.start();
}
}
现在在你的onCreate()
webview.getSettings()setJavaScriptEnabled(真)。
webview.addJavascriptInterface(新MyJavaScriptInterface(),HTMLOUT);
webview.setWebViewClient(新WebViewClient(){
@覆盖
公共无效onPageFinished(web视图来看,最终的字符串URL){
串oAuthUrl =的getString(www.google.com);
如果(url.contains(oAuthUrl))
{
Log.i(包含,验证URL);
twitter_webview.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
}
}
@覆盖
公共无效onPageStarted(web视图查看,字符串URL,位图图标){
progressDialog.show();
}
});
现在是什么情况,当你的页面加载完成,在JavaScript类将被调用,这将检索页面的源代码,并将其存储在一个字符串为您的要求。
How I get the web page's source from WebView?
I want to only enter www.google.com in my webview and When I entered this site, I want to get the source for example
String a=........;(source)
解决方案
I am not sure how far this is going to be helpful. But I have used the below snippet to fetch a small html page's data. I hope it helps you.
Create a class like the one below,
class MyJavaScriptInterface
{
@SuppressWarnings("unused")
public void processHTML(final String html)
{
Log.i("processed html",html);
Thread OauthFetcher=new Thread(new Runnable() {
@Override
public void run() {
String oAuthDetails=null;
oAuthDetails=Html.fromHtml(html).toString();
Log.i("oAuthDetails",oAuthDetails);
}
});OauthFetcher.start();
}
}
Now in your onCreate(),
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
webview.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, final String url) {
String oAuthUrl=getString("www.google.com");
if(url.contains(oAuthUrl))
{
Log.i("Contains","Auth URL");
twitter_webview.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
}
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
progressDialog.show();
}
});
And now what happens is that, when your page finishes loading, the JavaScript class will be called, which would retrieve the page source and store it in a String as your requirement.