When a user taps a URL or deeplink in a campaign, the SDK opens it itself using these intent flags:
- URLs —
FLAG_ACTIVITY_MULTIPLE_TASK+FLAG_ACTIVITY_NEW_TASK - Deeplinks —
FLAG_ACTIVITY_NEW_TASK
If those flags clash with your navigation, or you want to route certain links through your own code (in-app navigation, analytics, feature flags), intercept them with IPulsateLinkListener.
Intercepting links
Set the listener once, e.g. in your Application class:
Pulsate.mPulsateLinkListener = object : IPulsateLinkListener {
override fun onLinkTrigger(link: String): Boolean {
// Handle specific deeplinks yourself:
if (link.startsWith("myapp://loans")) {
navigator.openLoans()
return true // handled — Pulsate does nothing further
}
// Or open everything yourself with your own flags:
// startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(link)))
// return true
return false // not handled — Pulsate opens the link normally
}
}
Return true when your code handled the link (the SDK stops), false to let Pulsate open it with its default behavior.
The listener receives every URL and deeplink triggered from pushes, in-app messages, and the Feed — before the SDK acts on it.

