Я определил закрытый класс, который расширяет WebViewClient и настроил клиент моего WebView на экземпляр этого класса (webView01.setWebViewClient (new Callback ());).
Определение класса выглядит следующим образом:
private class Callback extends WebViewClient {
public void onLoadResource (WebView view, String url) {
}
public void onPageStarted (WebView view, String url, Bitmap favicon) {
}
public void onPageFinished (WebView view, String url) {
Animation anim = AnimationUtils.loadAnimation(MyNews.this, R.anim.webviewanim);
view.startAnimation(anim);
}
public void onReceivedError (WebView view, int errorCode, String description, String failingUrl) {
}
public boolean shouldOverrideUrlLoading (WebView view, String url) {
Log.e("loading url", url);
return false;
}
}
Моя проблема в том, что onPageFinished определенно вызывается, но shouldOverrideUrlLoading никогда не вызывается.
Что я здесь не так делаю?
6/13/2010
Немного больше информации.
Я загружаю начальную страницу из строки (webView01.loadDataWithBaseURL ("fake: // fake", myHTML, "text / html", "UTF-8", null);
).
Страница загружается (и имеется несколько вызовов onLoadResource), и onPageFinished вызывается при завершении загрузки страницы.
Когда пользователь нажимает на ссылку «Якорь» на странице, вместо вызова shouldOverrideUrlLoading вызывается onLoadResource.
Мне нужно вызывать полноценный веб-браузер, когда пользователь нажимает на ссылку, но у меня никогда не появляется возможность переопределить загрузку URL.