У нас есть приложение для встроенного Android-устройства, оно использует WebView, и внутри него мы используем Google OAuth 2 для входа в приложение. К сожалению Google скоро заблокирует OAuth 2 внутри WebView, и у нас есть много ограничений:
Использование Google OAuth 2 на встроенном устройстве на базе Android
Ответ 1
В соответствии с проблемами на вашей стороне было бы лучше открыть Intent из приложения, нацеленного на знак в Weburl [это не вызовет ссылку на адресную строку]
Обратитесь к этой странице stackOverflow как открыть "Добавить учетную запись Google" с использованием намерения?
теперь вы можете использовать Общие предпочтения для хранения данных аутентификации для дальнейшего входа в систему [если это разрешено приложениям приложения.]
https://developer.android.com/reference/android/content/SharedPreferences.html
Ответ 2
Реализация через браузер:
1) Зарегистрируйте настраиваемую схему URI (Как реализовать мою собственную схему URI на Android), например app-oauth2://
2) Сделать запрос доступа в браузере пользователя
https://accounts.google.com/o/oauth2/v2/auth?
scope=...
access_type=offline&
include_granted_scopes=true&
state=state_parameter_passthrough_value&
redirect_uri=http://example.com/oauth2-handler&
response_type=code&
client_id=...
3) Если пользователь принимает или отклоняет запрашиваемые права в диалоговом окне подтверждения, он будет перенаправлен на redirect_uri (http://example.com/oauth2-handler) с некоторыми параметрами
4) Со стороны обработчика redirect_uri (http://example.com/oauth2-handler), перенаправить к пользовательскому URI схема с параметрами:
- Успех: app-oauth2://? state = state_parameter_passthrough_value & code =... & scope =... #
- Отказ: app-oauth2://? error = access_denied & state = state_parameter_passthrough_value #
5) В вашем приложении вы можете проанализировать схему URI app-oauth2:// из опции 4 и получить код для будущего использования или ошибку для отображения пользователю.
Ответ 3
Для реализации решения, основанного на ваших потребностях, вам необходимо использовать веб-службы OAuth.
Ссылка ссылки: https://developers.google.com/+/web/api/rest/oauth
Вот пример проекта github, который использует веб-службу OAuth 2 для входа в Twitter. Вы можете воспользоваться этой возможностью для использования веб-сервисов Google OAuth2 в приложении для Android.
Ссылка репозитория:
https://github.com/sathify/tagpulse
Ссылка на экран использования веб-сервиса:
https://github.com/sathify/tagpulse/blob/master/android/src/tag/pulse/main.java
Надеюсь, это поможет.
Ответ 4
В Google OAuth 2 есть библиотека, поддерживающая Android 1.5 и выше:
Пример кода, найденного здесь: