获取所有网址中的WebView时,页面加载 [英] Get all url in webview when page loads

查看:111
本文介绍了获取所有网址中的WebView时,页面加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能够在网页视图加载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.

Similar post

这篇关于获取所有网址中的WebView时,页面加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆