Webview webBackForwardList不存储所有URL历史记录

时间:2017-12-19 07:52:05

标签: android webview android-webview

最近我得知我的混合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

几周前它曾经很好地工作 我错过了什么吗?

3 个答案:

答案 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的下一个版本并重新测试。祝你好运。