Вы можете переопределить загрузку URL с помощью следующего кода.Если вы хотите обрабатывать загрузку URL самостоятельно, верните true
.Если URL-адрес должен быть открыт в WebView, верните false
.
webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// Insert logic here
}
}
Если вы просто хотите открыть внешние ссылки, вы можете использовать следующий код.Если открытый URL-адрес начинается с базового URL-адреса вашего домена, возвращается false
и URL-адрес открывается в WebView.В противном случае для открытия URL-адреса в браузере используется намерение ACTION_VIEW
, и возвращается значение true.
webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// Abort if no URL
if (url == null || !(url.startsWith("http://") ||
url.startsWith("https://"))) {
return false;
}
// Abort if internal URL
if (url.startsWith("http://www.myurl.com") ||
url.startsWith("https://www.myurl.com")) {
return false;
}
// Open external URL in browser
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
});
Примечание: вам нужно обработать "http: // ..." и "https: // ...".Потому что метод может быть вызван для обоих.