shouldOverrideUrlLoading загрузит «file: ///», но не «http: //» параметры URL

1

Работает:

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;
    }
});
  • 0
    Попробуйте этот пост . Может быть, вам нужно установить намерение браузера
  • 0
    Ответ ниже решил вашу проблему? Если нет, пожалуйста, дайте детали.
Теги:
webview
webviewclient

1 ответ

2

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню