从Android网页浏览历史记录中删除/删除特定网址?

Moh*_*hit 7 android android-webview

是否可以从android的webview历史记录中删除特定的URL?我谷歌很多,但无法找到任何溶胶,即使我检查了api的文档,我认为没有直接的方法来做同样的事情.看看下面的代码:

// getting the whole list of web view's history....
WebBackForwardList list = wv.copyBackForwardList();
// getting previuous item/link 
String lastUrl = list.getItemAtIndex(list.getCurrentIndex()-1).getUrl();
Run Code Online (Sandbox Code Playgroud)

从第二行代码可以清楚地看到,可以使用历史记录,所以我认为必须有一些方法或技巧从Web视图历史记录中删除特定链接.这对你们有意义吗?

任何代码段或任何链接将非常感激.

谢谢,

小智 4

好吧,不确定你是否真的可以使用后退列表。我认为它是一个副本 - 至少这是它的名字所暗示的。

但是,您可以在某种程度上操纵后退。就我而言,当用户尝试从第二页退回到第一页时,我已经退出应用程序。

  @Override
  public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();
    switch (keyCode) {
        case KeyEvent.KEYCODE_BACK:
            if ((action == KeyEvent.ACTION_DOWN) && myWebView.canGoBack() ) {
                WebBackForwardList list = myWebView.copyBackForwardList();
                String lastUrl = list.getItemAtIndex(list.getCurrentIndex()-1).getUrl().toString();

                // Exit if index == 1, i.e. currently on 2nd page
                if (list.getCurrentIndex() == 1) {
                    finish();
                } else ...
Run Code Online (Sandbox Code Playgroud)

您还可以通过组合上面的内容并重载 url 加载来跳过其他其他页面:

            @Override
            public boolean shouldOverrideUrlLoading(WebView  view, String  url){
                 view.loadUrl(url);
                 return true;
            }
Run Code Online (Sandbox Code Playgroud)