如何在Android Web浏览器中存储历史记录

时间:2014-05-01 14:07:18

标签: java android browser-history

我编写了一个简单的网络浏览器,可以接受网址并呈现网页。如何存储过去页面视图的历史记录。有人可以建议一个简单的解决方案吗?

3 个答案:

答案 0 :(得分:3)

您可以使用双向链接的LinkedList来维护历史记录,但WebView已经包含处理前进和后退历史记录的方法。

void     goBack()
  

回到此WebView的历史记录中。

void     goBackOrForward(int steps)
  

转到历史记录项,即距离的步骤数   当前项目。

void     goForward()
  

继续本WebView的历史。

来自文档:https://developer.android.com/reference/android/webkit/WebView.html

答案 1 :(得分:1)

// put this in your xml file...

<WebView
    android:id="@+id/web_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

// then in your code

WebView webView = (WebView) findViewById(R.id.web_view);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient()
{
    // Links clicked will be shown on the webview
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        return super.shouldOverrideUrlLoading(view, url);
    }
}

// Then to load the webpage from edit text would be
webView.loadUrl(--Edit Text URL here);

// To go back to your previous page, call this method
webView.goBack();

// To go to your next page would be
webView.goForward();

答案 2 :(得分:0)

也许你可以看一下像Zirco Browser这样的开源项目 - &gt; https://code.google.com/p/zirco-browser/

像这样的一些代码&gt; https://code.google.com/p/zirco-browser/source/browse/branches/tint-browser-old2/src/org/tint/controllers/BookmarksHistoryController.java

   /**
         * Get a Cursor the history, e.g. records wich have a visits count > 0. Sorted by last visited date.
         * @param currentActivity The parent activity.
         * @return A Cursor to history records.
         * @see Cursor
         */
        public Cursor getHistory(Activity currentActivity) {
                String whereClause = Browser.BookmarkColumns.VISITS + " > 0";
                String orderClause = Browser.BookmarkColumns.DATE + " DESC";

                return currentActivity.managedQuery(android.provider.Browser.BOOKMARKS_URI, Browser.HISTORY_PROJECTION, whereClause, null, orderClause);
        }

也许您可以复制一些代码并将其用于您的项目。