我能够成功加载webview中的html页面。我也可以通过设置webviewclient获取点击webview的网址。但我想要的是不同的东西,我有一个webview加载一个网页,还有一个点击按钮,我想要该网页中的所有网址。我该怎么做?
到目前为止,我尝试过的代码是
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();
}
}
答案 0 :(得分:1)
如果你想获取页面上的所有网址,你需要html解析器。试试jsoup 如果您不想在项目中使用外部库,则可以创建自己的解析器。
1)通过HttpUrlConnection或HttpClient加载源页面
2)使用一些阅读器按行迭代页面内容
3)创建正则表达式以提取链接。