【问题标题】:How to store history in Android Web Browser [closed]如何在 Android Web 浏览器中存储历史记录 [关闭]
【发布时间】:2014-05-01 14:07:18
【问题描述】:

我编写了一个简单的网络浏览器,它接受 url 并呈现网页。如何存储过去页面查看的历史记录。有人可以提出一个简单的解决方案吗?

【问题讨论】:

  • 您到底遇到了什么问题?代码会有所帮助。

标签: java android browser-history


【解决方案1】:

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

void     goBack()

回到这个 WebView 的历史。

void     goBackOrForward(int steps)

转到历史记录项,即距离 当前项目。

void     goForward()

在这个 WebView 的历史中前进。

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

【讨论】:

    【解决方案2】:
    // 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();
    

    【讨论】:

      【解决方案3】:

      也许你可以看看像 Zirco 浏览器这样的开源项目 -> https://code.google.com/p/zirco-browser/

      类似这样的一些代码 > 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);
              }
      

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

      【讨论】:

        猜你喜欢
        • 2017-11-01
        • 2012-05-10
        • 1970-01-01
        • 2011-11-14
        • 2013-05-21
        • 2011-02-04
        • 1970-01-01
        • 2015-06-14
        • 1970-01-01
        相关资源
        最近更新 更多