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

时间:2019-03-24 15:34:00

标签: java android

我在尝试为小型企业做的基于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:链接期望无效,将不胜感激。

1 个答案:

答案 0 :(得分:1)

docs所述:

  

返回true会导致当前WebView放弃加载URL,而返回false会导致WebView照常继续加载URL。

您应该在检查URL的方法中具有逻辑,只有当URL与您期望的URL相匹配并开始活动并返回true时,才返回false。

遵循这些原则:

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