現(xiàn)象:
同一webview頁面郑兴,加載完成后在小米手機上可正常返回祟霍,即canGoBack為false歪泳,直接調用super.onBackPress方法退出activity锉屈;而華為、oppo(目前已知)機型上办龄,會出現(xiàn)canGoBack為true的情況烘绽,此時按下返回鍵會重新加載頁面,用戶體驗很差俐填。
分析:
1安接、經(jīng)過debug檢查,異常機型上頁面加載會回調到shouldOverrideUrlLoading方法英融,由此判斷可能是由于頁面初始化發(fā)生了重定向導致的問題盏檐;
2、經(jīng)過分析H5頁面驶悟,發(fā)現(xiàn)頁面加載時使用了window.location.replace方法胡野,測試后發(fā)現(xiàn)在華為OV流手機上會被識別為跳轉了新頁面,即canGoback會返回true痕鳍,造成返回時重復加載頁面的問題硫豆。
解決方案:
1、讓H5大佬修改下實現(xiàn)笼呆,避免使用replace(廢話)
2熊响、在onBackPress中判斷當前加載的url和webview初始化時的url是否一致,如一致即代表目前實際處在頂層頁面抄邀,不調用goback方法即可耘眨。