В 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(), вся переадресация будет происходить в соответствии с определенными условиями во внешнем браузере.