最近我得知我的混合Android应用程序无法正常运行。
投诉是,当他们按下设备上的后退按钮时,它应该返回到之前的webview网址。
但它会回到一个网址,就像用户按下两次按钮一样。
所以当我看一下日志
@Override
public void onBackPressed() {
WebBackForwardList URL = webView.copyBackForwardList();
for(int i = 0;i < URL.getSize(); i++){
Log.d("URL list : " + i, URL.getItemAtIndex(i).getUrl());
}
}
使用模拟器,它会显示我输入的所有URL列表。
哪种方法正常
D/URL list : 0: //https://www.blabla.com/ //First webview
D/URL list : 1: //https://www.blabla.com/catalog/category/view/id/999/ //Second webview
D/URL list : 2: //https://www.blabla.com/brand/bla.html //Third webview
D/URL list : 3: //https://www.blabla.com/44444444.html //Fourth webview
但是使用像三星Galaxy S6这样的真实设备,第三个和第一个Urls都不见了。
URL list : 0: //https://www.blabla.com/catalog/category/view/id/999/ //Second webview
URL list : 1: //https://www.blabla.com/44444444.html //Fourth webview
几周前它曾经很好地工作 我错过了什么吗?
答案 0 :(得分:1)
试试这个:
public static WebBackForwardList getHistoricalList(WebView webView) {
return webView.copyBackForwardList();
}
@Override
public void onBackPressed() {
WebBackForwardList URL = getHistoricalList(webView)
for(int i = 0;i < URL.getSize(); i++){
Log.d("URL list : " + i, URL.getItemAtIndex(i).getUrl());
}
}
快乐的编码!!
答案 1 :(得分:1)
试试这个
Gmail
答案 2 :(得分:1)
如果Android设备安装了Chrome版本63.0.3239.111,则webview的后退列表无法正常运行。禁用或恢复到早期版本的Chrome为我做了诀窍。但是,该解决方案可能并不适合所有人。在这种情况下,请等待Chrome的下一个版本并重新测试。祝你好运。