Android的cangoback方法,android – webView.canGoBack()在使用loadDataWithBaseURL()时不起作用...
所以我实际上决定实现我自己的“后退”功能,不确定这是否适用于每个人的意图,但它对我有用.第一,创建一个ArrayList,它将按时间顺序存储您访问的URL.private ArrayList searchHistory;从onCreate()初始化它:searchHistory = new ArrayList();现在,每次加载网址时,只需将网址字符串添加到历史记录中:String mUrl =
所以我实际上决定实现我自己的“后退”功能,不确定这是否适用于每个人的意图,但它对我有用.
第一,
创建一个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数据.
希望有所帮助!
更多推荐
所有评论(0)