Android WebView canGoBack always true

Android WebView canGoBack always true

本文关键字:true always canGoBack WebView Android      更新时间:2023-09-26

我有一个正在加载社交媒体页面的WebView。我已经覆盖了"后退"按钮以调用 WebView 上的 goBack 方法,直到canGoBack()返回false。然后它调用super.onBackPressed().问题在于,Twitter和YouTube使用Javascript的方式是,除非你快速点击后退按钮4次,否则canGoBack()会返回true

我尝试使用当前网址检查原始网址,但该页面的网址与传入的网址不同。

有谁知道一种方法可以让后退按钮调用 WebView 的goBack方法,直到您处于开头,然后调用super.onBackPressed

我有类似的问题,但就我而言,问题是我在覆盖 WebViewClient 的 shouldOverrideUrlLoad() 时检查了 url 是否正确,如果是,我正在我的 webView 中加载该 url 并在不应该完成的操作之后返回 false。所以我只是返回 false,它开始正常工作。希望我帮助了某人。

好吧,这并不理想,但您可以使用数组(或只是一个要增加和减少的整数)手动跟踪导航历史记录,并在每次更改时将当前 url 推送到其中,并在按下后退按钮时弹出最后一个 url,如果数组为空(或整数为 0),则调用super.onBackPressed()
若要在 url 更改时执行代码,可以boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request)重写 WebViewClient(文档链接)。
这样,网页的javascript就不会干扰你处理后退按钮的方式。