页面加载时获取webview中的所有URL

时间:2013-02-11 15:06:29

标签: android android-webview

我能够成功加载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();
    }
}

1 个答案:

答案 0 :(得分:1)

如果你想获取页面上的所有网址,你需要html解析器。试试jsoup 如果您不想在项目中使用外部库,则可以创建自己的解析器。

1)通过HttpUrlConnection或HttpClient加载源页面

2)使用一些阅读器按行迭代页面内容

3)创建正则表达式以提取链接。

Similar post