11

我有一个正在加载社交媒体页面的 WebView。我已经重写了 Back 按钮来调用goBackWebView 上的方法,直到canGoBack()返回false。然后它调用super.onBackPressed(). 问题是 Twitter 和 YouTube 使用 Javascript 的方式会canGoBack()返回true,除非你非常快速地点击返回按钮 4 次。

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

有谁知道让后退按钮调用 WebView 的goBack方法的方法,直到你一开始,然后调用super.onBackPressed

4

1 回答 1

0

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

于 2017-05-02T11:06:14.117 回答