所以我实际上决定实现我自己的“后退”功能,不确定这是否适用于每个人的意图,但它对我有用.

第一,

创建一个ArrayList,它将按时间顺序存储您访问的URL.

private ArrayList searchHistory;

从onCreate()初始化它:

searchHistory = new ArrayList();

现在,每次加载网址时,只需将网址字符串添加到历史记录中:

String mUrl = "www.example.com";

searchHistory.add(mUrl);

mWebView.loadDataWithBaseURL(mUrl,...);

并且,当用户按下时,通过删除数组的最旧条目来处理它,然后加载删除后剩下的最后一个:

@Override

public boolean onKeyDown(int keyCode,KeyEvent event) {

if ((keyCode == KeyEvent.KEYCODE_BACK) && searchHistoryPos > 0) {

Constants.LogMessage("Handling back keyevent");

//remove eldest entry

searchHistory.remove(mUrl);

//make the url-to-load be the latest entry after deletion

mUrl = searchHistory.get(searchHistory.size);

//load the new url

mWebView.loadDataWithBaseURL(mUrl...);

}

}

当然,在调用loadDataWithBaseUrl时,我也传递了预加载的HTML数据.

希望有所帮助!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐