首页 > 解决方案 > 当用户单击它时如何从 WebView 内的链接中提供 url

问题描述

我有一个 Web 视图。它包含页面,由 Jsoup 过滤。

    WebView cntContent;
    WebView cntComments;
    WebSettings webSettingsContent;
    WebSettings webSettingsComments;

        cntContent = findViewById(R.id.cntContent);
        cntComments = findViewById(R.id.cntComments);
        webSettingsContent = cntContent.getSettings();
        webSettingsComments = cntComments.getSettings();
        webSettingsContent.setDefaultFontSize(16);
        webSettingsComments.setDefaultFontSize(16);

        cntContent.setBackgroundColor(Color.TRANSPARENT);
        cntComments.setBackgroundColor(Color.TRANSPARENT);
        webSettingsContent.setAppCacheEnabled(true);
        webSettingsComments.setAppCacheEnabled(true);

        cntContent.loadDataWithBaseURL(contentUrl, contentFinal, "text/html", "utf-8", null);
        cntComments.loadDataWithBaseURL(contentUrl, commentsFinal, "text/html", "utf-8", null);
        cntContent.setClickable(true);

页面包含链接。当用户单击它并将 url 放入 String 时,如何提供链接的 url?

标签: javaandroidjsoup

解决方案


您应该做的是为 WebView 提供您自己的 WebViewClient。子类化 WebViewClient 并使用 WebView 方法 setWebViewClient 来设置它。然后在 WebViewClient 中覆盖“shouldOverrideUrlLoading”方法并使用链接做任何你喜欢的事情。

WebView wv = new WebView();
 wv.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                String url = request.getUrl().toString();
                return false;
            }
        });

推荐阅读