如何在webview中加载内部链接?

问题描述 投票:1回答:1

我在尝试获取内部链接以在基于webview的Android客户端中打开时遇到问题我正在为一家小型企业做。我需要做什么才能使应用程序只能打开“https://forums.mywebsite.com”和“https://mywebsite.com”的链接?

我已经拥有了使用操作视图打开外部链接所需的过程,但这只链接了loadurl()中声明的第一页,并且不在客户端中链接它们,并将它们视为外部链接。

aWebView.setWebViewClient(new WebViewClient() {
                                          @Override
                                          @TargetApi(21)
                                          public boolean shouldOverrideUrlLoading(WebView aWebView, WebResourceRequest request) {
                                              Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());

                                              superWebView.getContext().startActivity(intent);

                                              return true;
                                          }
                                      });

TL; DR:链接期望不起作用,任何帮助将不胜感激。

java android
1个回答
1
投票

正如docs解释的那样:

返回true会导致当前WebView中止加载URL,而返回false会导致WebView像往常一样继续加载URL。

您应该在检查URL的方法中使用逻辑,并且仅当url与预期的URL匹配并且启动活动时返回false,否则返回true。

这些方面的东西:

    WebView.setWebViewClient(new WebViewClient() {
        @Override
        @TargetApi(21)
        public boolean shouldOverrideUrlLoading(WebView aWebView, WebResourceRequest request) {
            if (TextUtils.equals(request.getUrl().toString(), "https://forums.mywebsite.com")
                    ||TextUtils.equals(request.getUrl().toString(), "https://mywebsite.com")) {
                return false;
            } else {
                Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
                superWebView.getContext().startActivity(intent);
                return true;
            }
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.