Links

Deep linking support

Setup

Deep linking is disabled by default. In order to enable it you will need to enable it in Kevin plugin and setup your app deep links for your callback urls in your AndroidManifest.xml file. Both in-app payments and account linking support deep links.

1. Setup your callback urls for plugins and enable deep linking

KevinApplication.kt
class KevinApplication : Application() {
override fun onCreate() {
super.onCreate()
Kevin.setDeepLinkingEnabled(true)
KevinAccountsPlugin.configure(
KevinAccountsConfiguration.builder()
.setCallbackUrl("kevin://redirect.authorization")
.build()
)
KevinPaymentsPlugin.configure(
KevinPaymentsConfiguration.builder()
.setCallbackUrl("kevin://redirect.payment")
.build()
)
}
}
AndroidManifest.xml
<activity
android:name="eu.kevin.accounts.accountsession.AccountSessionActivity"
android:exported="true">
<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:host="redirect.authorization"
android:scheme="kevin" />
</intent-filter>
</activity>
<activity
android:name="eu.kevin.inapppayments.paymentsession.PaymentSessionActivity"
android:exported="true">
<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:host="redirect.payment"
android:scheme="kevin" />
</intent-filter>
</activity>
We recommend to use non http/https schemes for callback urls when deep linking is enabled. This is because on pre android 12 there could be multiple apps that could handle these urls like browsers and that could break the flow. You can read more about deep links here.