MustOverrideUrlLoading будет загружать "файл:///" Но не "http://" Параметры URL

57
6

Работает:


mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl("file:///android_asset/www/css-js/app.css");
return true;
}
});

Не работает:


mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl("http://yahoo.com");
return true;
}
});

спросил(а) 2020-04-04T00:14:49+03:00 5 месяцев, 4 недели назад
1
Решение
70

Проблема в том, что создается бесконечный цикл. Он каждый раз переопределяет новый loadUrl. Например, это работает без проблем:


public boolean shouldOverrideUrlLoading(WebView view, String url) 
{
if(!url.toLowerCase().contains("yahoo.com"))
{
view.loadUrl("http://yahoo.com");
return true;
}
return false;
}

Обратите внимание, что просто сохранение последнего URL-адреса переопределения и сравнение с if(!url.equals(lastOverrideUrl)) не будет работать в этом случае (и многие другие), так как URL-адрес автоматически изменяется с "http://yahoo.com" на "http://www.yahoo.com/".

ответил(а) 2020-04-04T00:26:34.345090+03:00 5 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема