OAuth и пользовательская схема приводят к «ERR_UNKNOWN_URL_SCHEME» в Chrome
Я застрял на этом в течение нескольких часов, поскольку эта штука работала раньше, но внезапно перестала вести себя, как ожидалось. Я действительно не знаю, как и почему, поскольку я перепроверял каждую строчку кода в процессе, не зная, что не так, поэтому я прошу вас, ребята, о помощи.
Хорошо. Итак, яLoginScreen
активность с кнопкой запуска нового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
метод, но ... да, вещь больше не работает, как ожидалось.
Любая помощь приветствуется.