1. 程式人生 > >解決Android 8.0 WebView回退失效(判斷canGoBack()和呼叫goBack())

解決Android 8.0 WebView回退失效(判斷canGoBack()和呼叫goBack())

前言

最新開發專案使用WebView的時候發現華為手機判斷是否能回退(canGoBack)的時候失效了,無論開啟多少層網頁,點選返回按鈕都會關閉Activity,一開始以為是華為手機的問題,然後用其他版本高一點的手機測試也是一樣(8.0版本),查閱了官方文件才知道是sdk的問題。

問題

Android 8.0開始WebView的shouldOverrideUrlLoading(WebView view, String url)返回值是false才會自動重定向,並且無需呼叫loadUrl,與8.0之前的效果剛好相反。

解決辦法

@Override
public boolean shouldOverrideUrlLoading
(WebView view, String url) { //Android 8.0以下版本的需要返回true 並且需要loadUrl() if (Build.VERSION.SDK_INT < 26) { view.loadUrl(url); return true; } return false; }

在這裡做一下問題的記錄,希望能夠幫助到更多的適配8.0的開發者。