Deep linking support

Get to know how to enable deep linking feature

This is still an experimental feature.

kevin. mobile SDK includes a feature that lets you redirect your customers to third-party apps and seamlessly bring them back to your own app. By enabling deep linking on your app, you can significantly improve the speed and overall user experience of your customers.

Use cases

This feature can be helpful in a variety of situations:

Bank apps

During the payment process, if the user has the bank's app installed on their device and the selected bank supports direct payment authorization through their app, our mobile SDK will redirect the user to the bank's app. Once the user has completed the authorization process within the bank's app, they will be redirected back to their web browser and then to your app, providing an effortless payment experience.

Example of payment using deep linking:

Example of payment without deep linking:

Please note that the exact flow for this feature may vary from bank to bank. Also, the bank app may not support this feature itself.

To provide an extra layer of security, some banks require two-factor authentication (2FA), which is handled through a third-party app like BankID. When this happens, the bank will redirect user to the app to complete the 2FA process.

To ensure a streamlined user experience, it's important to configure Universal links or App links within your app. This way, the SDK can easily return the user to your app after they've completed the 2FA process required by the bank.

Setup

To enable deep linking, it is necessary to activate it in the kevin. plugin and configure your app's deep links for callback URLs. This feature is disabled by default, but both in-app payments and account linking flows can benefit from it.

It's important to note that the callbackUrl URL should support Universal Links for iOS and App Links for Android, as they will direct end-users back to your app.

import SwiftUI
import Kevin

@main
struct KevinDemoApp: App {
    
    init() {
        //  enable deep linking
        Kevin.shared.isDeepLinkingEnabled = true
        //  initialize required plugins with your callback urls
        KevinAccountsPlugin.shared.configure(
            KevinAccountsConfiguration.Builder(
                callbackUrl: URL(string: "https://your.callback.url")!
            ).build()
        )
        KevinInAppPaymentsPlugin.shared.configure(
            KevinInAppPaymentsConfiguration.Builder(
                callbackUrl: URL(string: "https://your.callback.url")!
            ).build()
        )
    }
}

To enable deep linking, you need to set isDeepLinkingEnabled to true in the Kevin.shared instance.

You also need to configure the required plugins, such as KevinAccountsPlugin and KevinInAppPaymentsPlugin, with your callback URLs.

It's important to note that the callbackUrl should support Universal Links for iOS and App Links for Android, as they will be used to direct end-users back to your app.

Universal Links and App Links are mechanisms Apple and Google provide, respectively. They allow apps to handle specific URLs instead of them being exclusively handled by a web browser. By implementing Universal Links or App Links in your app, you can associate specific URLs with your app's content or features, enabling seamless navigation between web content and your app.

To learn more about Universal Links, you can visit the Apple Developer Documentation on Universal Links. For information about App Links, you can refer to the Android Developers Documentation on App Links.

Last updated