Работает:
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;
}
});
Проблема в том, что создается бесконечный цикл. Он каждый раз переопределяет новый 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/".