2012-05-16 49 views
7

我有一个加载社交媒体页面的WebView。我已经覆盖了Back按钮来调用WebView上的goBack方法,直到canGoBack()返回false。然后它叫super.onBackPressed()。问题是Twitter和YouTube使用Javascript的方式是canGoBack()返回true,除非您真的很快点击后退按钮4次。Android WebView canGoBack始终为真

我已经试过检查与当前的URL的原始地址,但页面有一个不同的URL比被传递的一个。

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

回答

0

好吧,这并不理想,但您可以使用数组手动跟踪导航历史记录(或者只是一个增加或减少的整数),并在当前网址每次改变时都将当前网址加入其中,并从中弹出最后一个网址当您按下后退按钮时,如果数组为空(或整数为0),则请致电super.onBackPressed()
要在URL更改时执行代码,可以覆盖 WebViewClientlink to the documentation)的方法boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request)
这样,网页的JavaScript不会干扰你如何处理后退按钮。