Configuring delegates for links, emails and phone numbers
When a user taps a URL, phone number, or email address sent to a conversation, the SDK handles the event automatically by launching the default app capable of completing the action:
- the default browser for a URL
- the default phone app for a phone number
- the default email app for an email address
Note: Only URLs such as https://www.zendesk.com/ are made clickable in the UI. Other URIs such as zendesk://myapp
will not be clickable.
To customize this behavior, implement a MessagingDelegate
and override the shouldHandleUrl
function. This function is called whenever a user clicks a URL.
To stop the SDK from opening the default browser, return false in this situation. When this occurs, you must handle the completion of the action yourself. The function receives two parameters:
url
: the URL that was clickedurlSource
: an enumeration that describes where in the UI theurl
was clicked, such as a text message, a carousel item, and so on.
To view a demo of this, see Zendesk SDK Demo app in GitHub.
The following snippets show to set a MessagingDelegate
in Kotlin and Java:
Kotlin
Messaging.setDelegate(object : MessagingDelegate() {
override fun shouldHandleUrl(url: String, urlSource: UrlSource): Boolean {
// Your custom action...
// Return false to prevent the SDK from handling the URL automatically
// Return true to allow the SDK to handle the URL automatically, even
// if you have done something custom
return false
}
})
Java
Messaging.setDelegate(new MessagingDelegate() {
@Override
public boolean shouldHandleUrl(@NotNull String url, @NotNull UrlSource urlSource) {
// Your custom action...
// Return false to prevent the SDK from handling the URL automatically
// Return true to allow the SDK to handle the URL automatically, even
// if you have done something custom
return false;
}
});