Похоже, вы выполняете аутентификацию OpenID.Вы реализуете shouldOverrideUrlLoading()
, который вызывает намерение, которое, скорее всего, перейдет в веб-браузер по умолчанию, и возвращает true
.Возвращаемое значение сообщает Android, управляете ли вы загрузкой страницы (true
) или оставляете ее для просмотра в Интернете (false
).Если вы не берете на себя управление обработкой URL-адреса, веб-представление попытается загрузить его как обычную страницу.
Вы также сразу же направляете веб-представление на URL-адрес авторизации в коде onCreate
.,Я думаю, что это является частью путаницы по поводу поведения навигации, которое вы видите.
Для такого рода процесса аутентификации вы не хотите отменять загрузку страницы OTP.Пусть веб-просмотр обрабатывает это так же, как и все остальное.Что вы хотите сделать, это захватить ответ URL.Ваш оператор if
в shouldOverrideUrlLoading
должен перехватить URL-адрес ответа, использовать его содержимое и ответить true
, чтобы веб-представление узнало, что вы позаботились об этом URL-адресе.Все остальное должно обрабатываться веб-представлением.
Наконец, закомментированная версия кода выглядит для меня так, будто она отправит вас в бесконечный цикл, как вы его написали.Вы говорите веб-представлению загрузить URL-адрес авторизации, который вернется к коду вашего веб-клиента, который перехватит URL-адрес, заставив его загрузить URL-адрес ...