Получить последний загруженный url webview без выполнения webView.goBack () в Android
Я хочу зарегистрировать url-адрес истории или последний загруженный url-адрес без ручного хранения URL-адресов истории. Это возможно?
2 ответов
нашел ответ в документах ...
WebBackForwardList mWebBackForwardList = mWebView.copyBackForwardList();
String historyUrl = mWebBackForwardList.getItemAtIndex(mWebBackForwardList.getCurrentIndex()-1).getUrl();
вы можете поддерживать стек (список) посещенных URL-адресов, добавляя их в onPageFinished () и удаляя их при резервном копировании пользователя.
то есть
private List<String> urls = new ArrayList<String>();
@Override
public final void onPageFinished(final WebView view,final String url) {
urls.add(0, url);
super.onPageFinished(view, url);
}
а затем ловушка задней клавиши в activity:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (urls.size() == 1) {
finish();
return true;
} else if (urls.size() > 1) {
urls.remove(0);
// load up the previous url
loadUrl(urls.get(0));
return true;
} else
return false;
default:
return super.onKeyDown(keyCode, event);
}
}