OAuth и пользовательская схема приводят к «ERR_UNKNOWN_URL_SCHEME» в Chrome

Я застрял на этом часами, так как раньше работала, но внезапно перестала вести себя так, как ожидалось. Я действительно не знаю, как и почему, поскольку я пересматриваю каждую строку кода в процессе, не имея возможности понять, что не так, поэтому я прошу вас, ребята, о помощи.

Хорошо. Таким образом, у меня есть активность LoginScreen с кнопкой, Intent.ACTION_VIEW новый Intent.ACTION_VIEW при щелчке. Это запустит процесс OAUTH в браузере с помощью ApiManager.OAUTH_CALLBACK_URI установленного в stjapp://oauthresponse .

Вот моя часть AndroidManifest.xml для этой деятельности:

 <activity android:name=".LoginScreen" android:label="@string/application" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <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="stjapp" android:host="oauthresponse" /> </intent-filter> </activity> 

Как я начинаю Intent.ACTION_VIEW в своей деятельности:

 private View.OnClickListener loginHandler = new View.OnClickListener() { public void onClick(View v) { OAuthClientRequest request = null; try { request = OAuthClientRequest .authorizationLocation(ApiManager.OAUTH_AUTHORIZE) .setClientId(ApiManager.CLIENT_ID).setRedirectURI(ApiManager.OAUTH_CALLBACK_URI) .buildQueryMessage(); } catch (OAuthSystemException e) { e.printStackTrace(); } Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(request.getLocationUri() + "&response_type=code")); startActivity(intent); } }; 

И вот скриншот того, что происходит в браузере:

Введите описание изображения здесь

Там я должен вернуться к своей активности LoginScreen и обработать параметры запроса code в методе onNewIntent но … да, дело не работает onNewIntent образом.

Любая помощь оценивается.

Solutions Collecting From Web of "OAuth и пользовательская схема приводят к «ERR_UNKNOWN_URL_SCHEME» в Chrome"

Похоже, это ошибка Chromium . Обходной путь, который я использую, – это целевая страница PHP для RedirectURI, которая открывает приложение через JavaScript (на который не влияет эта ошибка):

 <script language="javascript"> window.location = 'myscheme://myhost/?<?=$_SERVER["QUERY_STRING"]?>'; </script> 

Я имел ту же ошибку и разрешил ее, указав URL-адрес http:// .

В Chrome версии 40 и выше эта ошибка появилась снова, но только если вы вручную вводите URL-адрес страницы переадресации в адресной строке. Проблема заключается в том, чтобы отслеживать проблемы с хромом.

Ответ с «обходным путем», вставленный из вопроса:

Хорошо, я узнал, что перенаправление window.location с помощью намерения будет работать, AS LONG, поскольку оно нажимается на внешний источник или ссылку на странице. Если вы вручную вводите адрес страницы перенаправления в адресную строку, перенаправление / открытие приложения завершится с ошибкой.

Таким образом, отправка ссылки на страницу переадресации по электронной почте или SMS будет очень удобной, если пользователь нажмет на ссылку. Вручную ввести адрес в адресную строку не удастся. window.location = chromeUrl; Должен работать нормально.

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

Ответ с «обходным путем», вставленный из вопроса:

Хорошо, я узнал, что перенаправление window.location с помощью намерения будет работать, AS LONG, поскольку оно нажимается на внешний источник или ссылку на странице. Если вы вручную вводите адрес страницы перенаправления в адресную строку, перенаправление / открытие приложения завершится с ошибкой.

Таким образом, отправка ссылки на страницу переадресации по электронной почте или SMS будет очень удобной, если пользователь нажмет на ссылку. Вручную ввести адрес в адресную строку не удастся. Window.location = chromeUrl; Должен работать нормально.