Я работаю над добавлением потока OAuth к интеграции Trello в моем приложении. Идея заключается в использовании глубоких ссылок для получения ответа внутри самого приложения (между приложением и базой данных нет сервера - я использую комнату).
У меня все работает до этого момента, кроме перенаправления обратного вызова часть, и она работает на моем реальном устройстве, а не на эмуляторе.
Это код, который начинает поток OAuth.
val connection = object:CustomTabsServiceConnection() {
override fun onCustomTabsServiceConnected(name: ComponentName, client: CustomTabsClient) {
val builder = CustomTabsIntent.Builder()
val customTabsIntent = builder.build()
client.warmup(0)
var authUrl = "$TOKEN_URL?key=$API_KEY&scope=read&callback_method=fragment&return_url=${AuthenticationManager.HTTPS_REDIRECT_URL}&expiration=never&name=$NAME&integration=${integration.id}"
customTabsIntent.launchUrl(context, Uri.parse(authUrl))
}
override fun onServiceDisconnected(name: ComponentName?) {
}
}
bindCustomTabsService(context, "com.android.chrome", connection);
Манифест
<activity
android:name="com.myapp.MainActivity"
android:screenOrientation="sensor"
android:windowSoftInputMode="adjustPan"
android:launchMode="singleTop"
android:configChanges="uiMode">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="pomodoro" android:host="oauth.myapp.com"/>
<data android:scheme="https" android:host="myapp.com"/>
</intent-filter>
</activity>
На этом этапе он перенаправляется на мою веб-страницу, которую я подтвердил на моем реальном устройстве, перенаправляет на мое приложение (чтобы оно могло использовать намерение и получить необходимый токен). Мне интересно, если при выборе Всегда использовать для браузера chrome (при первом открытии веб-страницы в эмуляторе), это в основном отменяет мою глубокую ссылку? Это возможно? Также использование другой схемы невозможно, поскольку Trello принудительно использует https / http в качестве надежных URL-адресов перенаправления / обратного вызова?