Edit:
Я обнаружил, что этот веб-сайт представляет собой одностраничный веб-сайт, и, вероятно, по этой причине я не уловил изменение URL-адреса, поэтому теперь мой вопрос: могу ли я узнать, что URL-адрес изменился на одностраничном веб-сайте?
У меня есть webView, который загружает веб-сайт.
shouldOverrideUrlLoading вызывается только один раз, при первой загрузке страницы, но не тогда, когда она перенаправляется внутри сети.
Это код веб-клиента, который я использую:
private class WebViewClientServiceGuide extends MyWebViewClient {
private WebView wv;
public WebViewClientServiceGuide(WebView _wv) {
wv = _wv;
Log.d(TAG, "WebViewClientServiceGuide.ctor");
}
public void onLoadResource(WebView view, String url) {
Log.d(TAG, "WebViewClientServiceGuide - onLoadResource: " + url);
super.onLoadResource(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
//Add history to history manager if needed
Log.d(TAG, "WebViewClientServiceGuide - onPageFinished");
super.onPageFinished(view,url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.d(TAG, "WebViewClientServiceGuide - shouldOverrideUrlLoading(WebView view, WebResourceRequest request)");
return super.shouldOverrideUrlLoading(view, request);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(TAG, "WebViewClientServiceGuide - shouldOverrideUrlLoading");
return false;
}
}
Допустим, я посетил эти страницы: page1, page2, page3, но перехватывает только page1 в shouldOverrideUrlLoading. Но когда я изучил историю веб-просмотра (copyBackForwardList), я увидел весь список (page1, page2, page3).
Почему это происходит? (Я пытался использовать другой веб-сайт и перехватывал там все страницы - я знаю, что разработчик веб-сайта должен это исправить, но я хочу знать, почему стек истории отличается от URL-адресов, которые я получаю на shouldOverrideUrlLoading)
Спасибо