2011-01-19 3 views
0

Я тестирую свое приложение на своей новой Galaxy Tab, и я столкнулся с чем-то странным.CallBack не работает на Galaxy Tab, но работает на всех других устройствах

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

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

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

EDIT:

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

ответ

1

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

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

+0

К сожалению xAuth для нас не является вариантом. Возможно ли сделать пользовательский веб-просмотр внутри моего приложения в качестве обходного пути? Если да, то как я могу это сделать? – Galip

+0

Вы можете попробовать изменить URL-адрес обратного вызова на javascript: window.location = "sosInternational: /// HierBenIkNu". Разумеется, urlencoded конечно, и с Javascript включен в вашем WebView. Это может заставить браузер активировать намерение. –

+0

Есть ли новости с этим? –

0

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