Обратные вызовы браузера и активность Android в стеке - PullRequest
6 голосов
/ 25 января 2012

Я изо всех сил пытаюсь получить определенное поведение для авторизации OAuth, используя вездесущий обратный вызов с техникой нестандартной схемы-> intent_filter.

Мое приложение регистрирует действия SEND и при вызове запускает службу, которая, в свою очередь, проверяет, авторизован ли уже пользователь, и, если нет, порождает действие (OAuthActivity) для запроса входа в систему.

Имейте в виду, что активность переднего плана перед этим может быть чем угодно. Затем действие запускает намерение VIEW, чтобы открыть страницу авторизации в браузере; последний вызывает созданный обратный вызов (с пользовательской схемой, определенной в манифесте) и активирует OAuthActivity.

OAuthActivity в настоящее время имеет значение launchMode="singleTask", но это не имеет значения с точки зрения стека (оно получает преимущество при обратном вызове).

Есть ли способ, которым я могу очистить стек активности и вернуться к тому, что делал пользователь, и не заставлять его «возвращаться» назад к активности браузера? (Затем я покажу уведомление, когда содержимое было успешно отправлено в фоновом режиме)

У кого-нибудь есть указатели? Спасибо за прочтение

1 Ответ

1 голос
/ 20 октября 2012

Затем действие начинает просмотр, чтобы открыть страницу авторизации в браузере

В этом проблема. Это работает для меня: рендеринг веб-страницы oauth в веб-просмотре, которым вы управляете, а не запуск в приложении браузера.

Веб-страница oauth, когда она вызывает свой обратный вызов, фактически заменит себя в веб-представлении, где ваш WebViewClient может перехватить этот ожидаемый URL-адрес, обработать результаты и завершить () веб-просмотр (удалив его из стека активности). ,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...