我编写了一个简单的网络浏览器,可以接受网址并呈现网页。如何存储过去页面视图的历史记录。有人可以建议一个简单的解决方案吗?
答案 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/
/**
* 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);
}
也许您可以复制一些代码并将其用于您的项目。