获取所有网址中的WebView时,页面加载 [英] Get all url in webview when page loads
问题描述
我能够在网页视图加载html页面成功。我还可以得到它被点击的WebView通过设置webviewclient的URL。但我想要的东西不同势,我有它加载一个网页一个网页视图,也上点击一个按钮,我想在该网页上所有的URL present。我该怎么做呢?
到目前为止,code我试图为
对话框= ProgressDialog.show(Activity.this,NULL,NULL);
dialog.setContentView(R.layout.loader); w.setWebViewClient(新MyWebViewClient()); w.loadDataWithBaseURL(一样:// UR / L /达/不/不/工作,string_html,
text / html的,UTF-8,NULL);私有类MyWebViewClient扩展WebViewClient { @覆盖
公共布尔shouldOverrideUrlLoading(的WebView视图,字符串URL){
view.loadUrl(URL);
返回true;
} @覆盖
公共无效onPageStarted(的WebView视图,字符串URL,位图图标){
super.onPageStarted(查看,网址,图标); 如果(url.startsWith(HTTP://)){
的System.out.println(内部IF); // NON-NLS
view.stopLoading(); urlToSend =网址; 的System.out.println(在+ urlToSend); 意向意图=新意图(DetailNews.this,Web.class);
intent.putExtra(网,网址);
startActivity(意向); }
} @覆盖
公共无效onPageFinished(的WebView视图,字符串URL){
super.onPageFinished(查看,网址); dialog.dismiss();
}
}
如果你想获得你需要的HTML解析器页面上的所有URL。尝试 jsoup
如果你不想在你的项目中使用外部库,您可以创建自己的解析器。
1),通过HttpURLConnection类或HttpClient的
加载源页面2)使用一些读者遍历一行页面内容
3)创建正则表达式的前pression提取链接。
I am able to load a html page in a webview successfully. I can also get the url which is clicked on webview by setting the webviewclient. But what i want is something diffrent, i have a webview which loads a web page and also a button on click of which i want all the urls present in that web page. How do i do this?
So far the code i have tried is
dialog = ProgressDialog.show(Activity.this, null, null);
dialog.setContentView(R.layout.loader);
w.setWebViewClient(new MyWebViewClient());
w.loadDataWithBaseURL("same://ur/l/tat/does/not/work", string_html,
"text/html", "utf-8", null);
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
if (url.startsWith("http://")) {
System.out.println("INSIDE IF"); // NON-NLS
view.stopLoading();
urlToSend = url;
System.out.println("in " + urlToSend);
Intent intent = new Intent(DetailNews.this, Web.class);
intent.putExtra("Web", url);
startActivity(intent);
}
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
dialog.dismiss();
}
}
If you want to get all urls on page you need html parser. Try jsoup If you don't want to use external libs on your project you can create own parser.
1) Load source page via HttpUrlConnection or HttpClient
2) Use some reader to iterate page content by line
3) Create regexp expression to extract links.
这篇关于获取所有网址中的WebView时,页面加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!