在 WebView Android 中加载 link

Load link in WebView Android

WebView webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://google.com");

这是我的 webview 代码。它工作正常,但是当单击 link 时,它会打开默认浏览器并且不会在 webview 中加载 link。

帮帮我!

您需要实现自己的 WebViewClient 来告诉 webView 应处理 url 或 domanis。像这样:

private class BaseWebViewClient extends WebViewClient {

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        if (Uri.parse(request.getUrl().toString()).getHost().contains("yourdomain.com.ar")) {
            callback.setWebView(view);
            return false;
        }
        // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(request.getUrl().toString()));
        startActivity(intent);
        return true;
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (Uri.parse(url).getHost().contains("yourdomain.com.ar")) {
            callback.setWebView(webView);
            return false;
        }
        // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        return true;
    }

}

然后将其设置为您的 webView 元素:

webView.setWebViewClient(new BaseWebViewClient());
webview.setWebViewClient(new WebViewClient())

在你的Activity

WebView webView = (WebView) findViewById(R.id.webView);

webView.setWebViewClient(new BaseWebViewClient());

webView.getSettings().setJavaScriptEnabled(true);

webView.loadUrl("http://www.google.com");