Android WebView canGoBack始终如一

toa*_*zky 9 javascript android back webview

我有一个加载社交媒体页面的WebView.我重写了Back按钮以goBack在WebView上调用该方法,直到canGoBack()返回false.然后它打电话super.onBackPressed().问题是Twitter和YouTube使用Javascript的方式会canGoBack()返回,true除非你很快点击后退按钮4次.

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

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

non*_*rej 0

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