Возьмем, к примеру, URL https://www.bbc.co.uk/sport/football/51519206. В теле ответа он отправляет обратно <link rel="alternate" hreflang="en" href="https://www.bbc.com/sport/football/51519206" />
, что во многих случаях приводит браузер и - в моем случае - WebView
для перехода по альтернативной ссылке и загрузки этой страницы. Это все хорошо.
Проблема в том, когда пользователь хочет go назад. В браузере вы увидите, что при нажатии назад вы не вернетесь к адресу co.uk
, с которого пришло перенаправление. И такое поведение я бы ожидал от WebView
. Однако WebView
canGoBack()
вернет true
, а goBack()
заставит WebView
загрузить адрес co.uk
, а затем снова выполнить перенаправление. Таким образом, пользователь застревает, если не щелкнуть два раза назад очень быстро.
Есть ли способ обойти это поведение? Есть ли, например, способ сделать один из следующих вариантов?
- Установить некоторые настройки, чтобы
goBack()
работал так, как ожидал пользователь. - Знаете ли, что загруженный URL был вызван перенаправлением и что
goBack()
должен вызываться дважды / X раз? (WebResourceRequest
возвращает false
для isRedirect()
(как и ожидалось для серверных перенаправлений).) - Скажите
WebView
не переходить по альтернативным ссылкам