获取最后加载的webview网址,而无需在Android中执行webView.goBack()

时间:2011-10-13 16:01:04

标签: android webkit android-webview browser-history

我想记录历史记录网址或上次加载的网址,而无需手动存储历史记录网址。这可能吗?

2 个答案:

答案 0 :(得分:33)

在文档中找到答案......

WebBackForwardList mWebBackForwardList = mWebView.copyBackForwardList();
String historyUrl = mWebBackForwardList.getItemAtIndex(mWebBackForwardList.getCurrentIndex()-1).getUrl();

答案 1 :(得分:0)

您可以通过在onPageFinished()中添加URL来维护访问过的URL的堆栈(列表),并在用户备份时将其删除。

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);
    }

然后在活动中捕获后退键:

@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);
    }
}