Skip to main content

In-App Notifications

In-app notifications are modal messages displayed while your app is in the foreground. SDK handles them automatically - when a Positive User in-app message arrives, it's presented on top of your current view controller with no extra setup required.


Customize the close button label​

The close button reads "Close" by default. Set inAppAlertCloseButtonText before the SDK is initialized to change it globally:

UserSDK.inAppAlertCloseButtonText = "Got it"

UserSDK.default = UserSDK(
application: application,
apiKey: "YOUR_API_KEY",
baseURL: "your-domain.user.com",
shouldTrackActivities: false
)

Use a custom font​

If your in-app messages reference a font that isn't a system font, implement FontResolving and assign it to the SDK:

class AppFontResolver: FontResolving {
func resolveFontFor(name: String, size: CGFloat) -> UIFont? {
return UIFont(name: name, size: size)
}
}

UserSDK.default?.fontResolver = AppFontResolver()

The SDK calls resolveFontFor(name:size:) whenever it needs to render text in an in-app message. Return nil to fall back to the system font.


Handle button taps​

By default, buttons in in-app messages open their URL in the browser. To intercept that - for example, to handle a deep link inside your app - implement InAppNotificationClickDelegate:

class AppInAppDelegate: InAppNotificationClickDelegate {
func inAppNotificationDidClick(url: URL) -> Bool {
guard url.scheme == "myapp" else {
return false // not your URL - let the SDK open it in the browser
}
// handle deep link navigation
return true // you handled it, SDK won't open the browser
}
}

UserSDK.default?.inAppNotificationClickDelegate = AppInAppDelegate()

Returning true tells SDK you've handled the URL. Returning false lets SDK open it.