CallBack не работает на Galaxy Tab, но работает на всех других устройствах

Я тестирую свое приложение на своем новом Galaxy Tab и столкнулся с чем-то странным.

У меня есть интеграция с Twitter в моем приложении. В основном он открывает WebView и использует Oauth для аутентификации. После этого он отправляет CallBack обратно в мое приложение с секретным токеном, и там я использую его для твитов. Вы можете получить больше информации о том, как я это делаю здесь: Обратный вызов после аутентификации Twitter

Это работает на всех устройствах, но на Galaxy Tab это не возвращается к моему приложению. Вместо этого он дает мне страницу «Веб-страница недоступна» в браузере с правильным URL-адресом обратного вызова в адресной строке.

Почему это не работает на Galaxy Tab?

РЕДАКТИРОВАТЬ:

Может быть, это потому, что Galaxy Tab использует собственный браузер, который не поддерживает CallBack?


person Galip    schedule 19.01.2011    source источник


Ответы (2)


Я немного удивлен, что это работает на любом устройстве... обратный вызов отправляется как ответ на обычный HTTP-запрос, то есть перенаправление 302. Это не то же самое, что щелчок пользователя... Я не вижу, чтобы вы когда-либо могли полагаться на то, что браузер запускает Intent для перенаправления.

Если вы быстро не найдете обходной путь, я настоятельно рекомендую переключиться на XAuth. Это гораздо лучше подходит для мобильных приложений. Поток OAuth в Твиттере предполагал использование веб-браузера ПК на каждом этапе пути, что всегда является ужасным пользовательским опытом на мобильной платформе.

person Reuben Scratton    schedule 07.02.2011
comment
К сожалению, xAuth нам не подходит. Можно ли сделать собственный веб-просмотр внутри моего приложения в качестве обходного пути? Если да, то как я могу это сделать? - person Galip; 07.02.2011
comment
Вы можете попробовать изменить URL обратного вызова на javascript:window.location=sosInternational:///HierBenIkNu. Конечно, с соответствующим urlencoded и с включенным Javascript в вашем WebView. Это может заставить браузер активировать намерение. - person Reuben Scratton; 07.02.2011
comment
Можем ли мы с уверенностью предположить, что это больше не проблема, т. е. приведенное выше предложение сработало? Блин, но я ненавижу, когда люди просто исчезают... ›:-[ - person Reuben Scratton; 13.02.2011
comment
Я не «исчез». Я ценю вашу помощь (и от других), но у меня было тяжелое время на этой неделе с некоторыми крайними сроками. Я посмотрю на это позже, но не связывайте меня с другими хитами и бегунами. - person Galip; 14.02.2011

Библиотека твиттера работает, проверяя ссылки, открытые в веб-браузере. Самый простой способ проверить — поместить точку останова в код, реализующий WebViewClient. Если точка останова попадает в функцию onLoadResource, значит, есть какая-то другая ошибка или то, что вы думаете, правильно.

person user210504    schedule 13.02.2011