Как сделать переадресацию в Webview во внешнем браузере?

В Java для осуществления переадресации во внешнем браузере из WebView можно воспользоваться классом WebViewClient и методом shouldOverrideUrlLoading().

Для начала вам необходимо создать экземпляр класса WebViewClient и установить его для WebView с помощью метода setWebViewClient():

WebView webView = findViewById(R.id.webView);
WebViewClient webViewClient = new WebViewClient();
webView.setWebViewClient(webViewClient);

Затем вам нужно переопределить метод shouldOverrideUrlLoading() класса WebViewClient. В этом методе вы можете определить условия, при которых переадресация должна происходить во внешнем браузере:

webViewClient.shouldOverrideUrlLoading(webView, url) {
    if (url.startsWith("http://") || url.startsWith("https://")) {
        // Открываем ссылку во внешнем браузере
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        return true; // Возвращаем true, чтобы сообщить WebView о переадресации
    } else {
        // Открываем ссылку в текущем WebView
        webView.loadUrl(url);
        return false; // Возвращаем false, чтобы сообщить WebView о необходимости обработки ссылки
    }
}

В данном примере мы проверяем, является ли URL внешней ссылкой, начинающейся с "http://" или "https://". Если условие выполняется, мы создаем намерение Intent с целью ACTION_VIEW для открытия ссылки во внешнем браузере с помощью startActivity(). Установка возвращаемого значения как true говорит WebView о том, что переадресация будет обработана во внешнем браузере. Если условие не выполняется, мы загружаем URL в текущем WebView с помощью метода loadUrl() и возвращаем false, чтобы сообщить WebView о необходимости обработки ссылки.

Теперь, когда вы установили свой собственный WebViewClient и переопределили метод shouldOverrideUrlLoading(), вся переадресация будет происходить в соответствии с определенными условиями во внешнем браузере.