Intereting Posts
Повторяют ли соединения Apache DefaultHttpClient (Android) и NSURLConnection (iOS) неудачные соединения со старыми версиями протокола? Объяснить AsyncTaskLoader Как получить правильный подшипник (магнитную ориентацию) независимо от ориентации экрана? ActivityUnitTestCase бросает RuntimeException при запуске с помощью AndroidJUnitRunner Traceview не может открыться из DDMS в eclipse Как я могу зафиксировать форматирование моего текста EditText, чтобы жирные слова были выделены жирным шрифтом в следующий раз, когда я покажу их в TextView Различия между MapView, MapFrament и поддержкойMapFragment JSON VS простая манипуляция строк для синтаксического анализа HttpRequest в Android Как создать дизайн материала, например, обычную полосу прокрутки с цифрами и буквенными буквами в recylerview Android: что мне делать вместо использования устаревшей функции (getwidth ())? Изменить размер: Android Radio Button Перезагрузка / выключение Android-эмулятора Android NDK: функция va_start / va_end не может быть решена Программное включение / отключение поворотов экрана в Android Измените выбранный элемент списка элементов изображения в android

Почему моя активность не запускается по URL-адресу?

Я понимаю, что есть несколько подобных вопросов, но ни один из принятых ответов не работает для меня. В рамках процесса oauth я хочу, чтобы браузер перенаправлял запуск моей активности. Как я видел повсюду, я создал фильтр намерений, который предположительно делает это:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.codesta.test" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".BrowsableActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="oauth.android.mydomain.com" /> </intent-filter> </activity> </application> </manifest> 

Однако, когда я открываю браузер и нахожу http://oauth.android.mydomain.com, я получаю страницу с ошибкой «веб-страница недоступна». Я также попытался определить мою собственную схему (которую я читал, как правило, не рекомендуется), но это тоже не сработало.

Я нацелился на уровень 7 api и без успеха проверил код на эмулируемых устройствах с 2,1 и 2,2. Любая помощь будет принята с благодарностью!

Я столкнулся с той же проблемой. Насколько я могу высок, несколько сайтов OAuth используют тег <META … />, чтобы сделать окончательное перенаправление, которое вы пытаетесь захватить.

Перенаправления с использованием тега META не попадают в фильтр Intent, поэтому ваш код никогда не выполняется. Как ни странно, если одна и та же ссылка нажата пользователем или перенаправлена ​​с использованием заголовка Location:, она запускается. На этом уже есть открытый биг-код Android 2.2.1, но я потерял ссылку на него.

Обычным обходным путем является создание реальной страницы на URL-адресе обратного вызова и перенаправление ее оттуда с помощью заголовка Location: в другое место, которое вы можете выполнить.

EDIT: Я с тех пор пробовал это с заголовком Location: и кажется, что перенаправления вообще к http: // не фиксируются, но перенаправление на другую схему (x-oauth: //) нахмуривается, но работает.

Я не уверен, я могу проверить позже, но я думаю, что когда вы вводите его в браузере, вы говорите браузеру его открыть.

Возможно, нужно на самом деле щелкнуть ссылку, которая загружает эту схему: // комбинация хостов, а не только ввести ее в строку «url bar».

Редактировать: Извините, я сделал быстрый тест, и это не тот случай. Тем не менее, проблема может заключаться в том, что браузер пытается разрешить хост до того, как он действительно попадет в часть намерения, и предлагает вам открыть его в своем приложении. Работает ли он с реальным URL-адресом (при условии, что я был прав, предполагая, что это не настоящий разрешающий URL-адрес?)

Фильтр намерений отлично работал для схем http и https, пока я использовал реальный домен. Однако всплывающее окно с запросом пользователя о том, хотят ли они использовать браузер вместо приложения, было неприемлемым. Я попытался использовать свою собственную схему, но это не сработало (не знаю, почему).

Для целей моего приложения было достаточно создать активность с помощью WebView вместо использования полнофункционального браузера, и я переопределил shouldOverrideUrlLoading WebViewClient и запросил ловушку для моего uri и отправил их непосредственно в мою активность. Это решение работает лучше, чем то, что я пытался сделать раньше, потому что пользователь не получает подсказки, и мне не нужно определять глобальную схему.

Бен…

Проверьте с изменением схемы на https вместо http.