Advanced integration

Advanced integration

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.

You can customize the behavior and change what happens when the user clicks a URL by setting a MessagingDelegate. The shouldHandleUrl function will be called any time the user clicks a URL.

To prevent the SDK from opening the default browser, you should return false when this happens. In that case, you must handle the completion of the action yourself. The function receives two parameters:

  • url: the URL that was clicked
  • urlSource: an enumeration that describes where in the UI the url was clicked, such as a text message, a carousel item, and so on.

The following snippets show how you can 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;    }});