Наше приложение недавно перешло на использование пользовательских вкладок Chrome для аутентификации. WebViews не разрешал вход в систему из Google и Facebook из-за ограничений конфиденциальности.
Все работало хорошо, используя методы жизненного цикла onResume и onNewIntent, чтобы определить, когда пользователь закрывает Пользовательская вкладка Chrome и перенаправляется обратно в наше приложение. Однако в недавнем обновлении Chrome появилась кнопка свертывания (режим «картинка в картинке») для пользовательских вкладок Chrome.
Для нашего процесса аутентификации такая функция сворачивания нежелательна. Мы хотим, чтобы пользователь завершил аутентификацию, прежде чем снова взаимодействовать с приложением. К сожалению, прямое изменение поведения вкладки Chrome ограничено из соображений конфиденциальности.
Наша текущая проблема заключается в том, что когда пользователь сворачивает пользовательскую вкладку Chrome, наше приложение, использующее onResume, интерпретирует это как полное закрытие. Я исследовал API-интерфейсы onMinimized и onUnMinimized из CustomTabCallback, но они не обнаруживают сценарий, в котором пользователь сворачивает, а затем закрывает вкладку. В результате активность нашего приложения остается пустой, что приводит к ухудшению пользовательского опыта.
Вопрос:
- < li>Есть ли способы надежно определить, когда пользователь наконец закрывает свернутую пользовательскую вкладку Chrome?
- Существуют ли альтернативные решения для эффективного отслеживания функции свертывания для нашего процесса аутентификации? >
Я исследовал onMinimized и onUnMinimized API из CustomTabCallback. Чтобы отслеживать свернутое состояние, я реализовал флаг. Однако этот подход имеет ограничения. Внутри onResume я использую таймер (установленный на 750 миллисекунд) для периодической проверки флага. Если флаг показывает, что вкладка свернута, я не рассматриваю ее как закрытую вкладку. Это приводит к небольшой задержке в обнаружении события закрытия, и мне интересно, есть ли лучшие решения.
Но, как я уже говорил ранее, это решение может разрешить обнаружение состояния сворачивания, но когда пользователь закрывает пользовательскую вкладку, когда она находится в свернутом состоянии, мы не можем обнаружить.
Есть ли способ обнаружить закрытие пользовательской вкладки в свернутом состоянии?
Спасибо за любую помощь!
Подробнее здесь: https://stackoverflow.com/questions/782 ... on-android
Мобильная версия