【发布时间】:2014-05-01 14:07:18
【问题描述】:
我编写了一个简单的网络浏览器,它接受 url 并呈现网页。如何存储过去页面查看的历史记录。有人可以提出一个简单的解决方案吗?
【问题讨论】:
-
您到底遇到了什么问题?代码会有所帮助。
标签: java android browser-history
我编写了一个简单的网络浏览器,它接受 url 并呈现网页。如何存储过去页面查看的历史记录。有人可以提出一个简单的解决方案吗?
【问题讨论】:
标签: java android browser-history
您可以使用双向链接的 LinkedList 来维护历史记录,但 WebView 已经包含处理前进和后退历史记录的方法。
void goBack()
回到这个 WebView 的历史。
void goBackOrForward(int steps)
转到历史记录项,即距离 当前项目。
void goForward()
在这个 WebView 的历史中前进。
来自文档:https://developer.android.com/reference/android/webkit/WebView.html
【讨论】:
// 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();
【讨论】:
也许你可以看看像 Zirco 浏览器这样的开源项目 -> https://code.google.com/p/zirco-browser/
/**
* 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);
}
也许您可以复制一些代码并将其用于您的项目。
【讨论】: