我有一个加载社交媒体页面的WebView.我重写了Back按钮,在WebView上调用goBack方法,直到canGoBack()返回false.然后它调用super.onBackPressed().问题是Twitter和YouTube使用
Javascript的方式是canGoBack()返回true,除非你很快点击后退按钮4次.
我已尝试使用当前网址检查原始网址,但该网页的网址与传入的网址不同.
有没有人知道如何让后退按钮调用WebView的goBack方法,直到你开始,然后调用super.onBackPressed?
解决方法
嗯,这不是理想的,但你可以通过使用数组(或只是一个增加和减少的整数)手动跟踪导航历史记录,并在每次更改时将当前网址推入其中,并在按下时弹出最后一个网址返回按钮,如果数组为空(或整数为0),则调用super.onBackPressed().
要在url更改时执行代码,可以覆盖方法boolean shouldOverrideUrlLoading(WebView视图,WebResourceRequest请求)
WebViewClient( link to the documentation). 这样网页的javascript就不会干扰你如何处理后退按钮.
要在url更改时执行代码,可以覆盖方法boolean shouldOverrideUrlLoading(WebView视图,WebResourceRequest请求)
WebViewClient( link to the documentation). 这样网页的javascript就不会干扰你如何处理后退按钮.