shouldOverrideUrlLoading загрузит файл ": ///" но не "http://" Параметры URL - PullRequest
2 голосов
/ 24 мая 2011

Работает:

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;
    }
});

1 Ответ

2 голосов
/ 25 мая 2011

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

...