Android WebView canGoBack始终如一

时间:2012-05-16 14:55:40

标签: javascript android webview back

我有一个正在加载社交媒体页面的WebView。我重写了Back按钮,在goBack返回canGoBack()之前调用WebView上的false方法。然后它调用super.onBackPressed()。问题是Twitter和YouTube使用Javascript的方式使canGoBack()返回true,除非您快速点击后退按钮4次。

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

有没有人知道如何让后退按钮调用WebView的goBack方法直到您开始,然后调用super.onBackPressed

1 个答案:

答案 0 :(得分:0)

嗯,它不理想,但您可以通过使用数组(或只是增加和减少的整数)手动跟踪导航历史记录,并在每次更改时将当前网址推入其中并弹出最后一个当您按下后退按钮时,它会从中滚动,如果数组为空(或整数为0),则调用super.onBackPressed()
要在URL更改时执行代码,您可以覆盖方法boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request)  WebViewClientlink to the documentation)。
通过这种方式网页' javascript无法干扰您处理后退按钮的方式。