0

我能够成功地在 webview 中加载 html 页面。我还可以通过设置 webviewclient 来获取在 webview 上点击的 url。但我想要的是不同的东西,我有一个加载网页的 webview 以及一个单击按钮,我希望该网页中存在所有 url。我该怎么做呢?

到目前为止,我尝试过的代码是

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();
    }
}
4

1 回答 1

1

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

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

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

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

类似的帖子

于 2013-02-11T15:37:41.427 回答