2012-03-30 3 views
13

В моем приложении shouldOverrideUrlLoading() не вызывается в версии Honeycombe 3.2. Я тестировал его на 2.2 и 4.0.1, и все они работают нормально.Android webview shouldOverrideUrlLoading не называется

Это ошибка в сотах? Как я могу обойти это?

мне нужно отправить пользовательский заголовок для каждого запроса в shouldOverrideUrlLoading()

view.loadUrl(url,headers); 

Спасибо заранее.

+0

'shouldOverrideUrlLoading()' не запускается, когда запрос POST (возможно, это причина). –

+0

@SYLARRR Я пробовал как GET, так и POST на другой версии, и он работает. – Riddle

+0

Эта функция часто никогда не вызывалась. Я нашел ту же проблему на нескольких веб-сайтах: www.youtube.com Я не вырыл достаточно глубоко, чтобы узнать, почему, но в основном эта функция ненадежна. – Lee

ответ

10

Этот метод вызывается только тогда, когда пользователь выполняет навигацию. Он не всегда будет вызываться, если веб-сайт перенаправляет пользователя. Общим сценарием для этого является веб-сайт с использованием AJAX для изменения содержимого страницы или перенаправления пользователя.

Проверьте другие обратные вызовы в WebViewClient, чтобы найти тот, который соответствует вашим потребностям: onLoadResource, onPageStarted. В вашем случае вы нацеливаете уровень API 11+, поэтому toInterceptRequest также доступен вам.

+0

Ни один из этих 3 методов не вызывается, но в некоторых случаях я обнаружил, что из журналов они действительно активировались! эта рутина ненадежна? –

Смежные вопросы