v3-4 SDK SDK Notification Event Handlers
Handling Notification Events within OneSignal
The methods below require the OneSignal SDK versions 3 & 4.
It is recommended to upgrade to our latest version 5 SDKs for User Model APIs.
See Update to User Model for migration steps.
Notification Events | Details |
---|---|
Foreground Notification Received Event | OneSignal SDK setNotificationWillShowInForegroundHandler method runs before displaying a notification while the app is in focus. Use this handler to decide if the notification should show or not. |
Notification Opened Event | OneSignal SDK setNotificationOpenedHandler method runs upon opening the app after a notification is clicked. |
Background Notification Received Event | Native Methods that run while a notification is received while app is in the background. These methods require using Native Code like Java/Kotlin or Swift/Objective-C. |
Force-quit Notification Received Event | iOS - Force-quit state is when the app has been “swiped away” and not running in the foreground or background. Apple still keeps an open connection to your app but requires the Service Extensions for notification data detection. Android - Force-quit generally happens manually through the App Settings and prevents any communication to your app. Further, some OEMs will put your app into this force-quit state when swiping the app away. See Notifications Not Shown for more details. |
Foreground Notification Received Event
setNotificationWillShowInForegroundHandler
Method
Runs before displaying a notification while the app is in focus. Use this handler to read notification data and change it or decide if the notification should show or not.
Call setNotificationWillShowInForegroundHandler
before you set OneSignal.setNotificationOpenedHandler
.
Note: this runs after the Notification Service Extension which can be used to modify the notification before showing it.
Platform | Parameter | Type |
---|---|---|
Android | OSNotificationWillShowInForegroundHandler | Callback |
iOS | OSNotificationWillShowInForegroundBlock | Block |
OSNotificationReceivedEvent
methods:
Type | Field | Description |
---|---|---|
void (Android)OSNotificationDisplayResponse (iOS) | complete()``completion() (iOS Native) | Required: Method controlling notification completion from the handler. If this is not called at the end of the notificationWillShowInForeground implementation, a runnable will fire after a 25 second timer and complete automatically. Parameter: - Display: pass the OSNotification object - Omit: pass null to omit displaying |
OSNotification | getNotification()``notification (iOS Native) | Method The notification the device received. See OSNotification for more details. |
Notification Opened Event
setNotificationOpenedHandler
Method
This method takes a OSNotificationOpenedHandler
callback that itself accepts a parameter result
of type OSNotificationOpenedResult
.
Platform | Parameter | Type |
---|---|---|
Android | OSNotificationOpenedHandler | Callback |
iOS | OSNotificationOpenedBlock | Block |
OSNotificationOpenResult
fields:
Type | Method/Property | Description |
---|---|---|
OSNotification | getNotification() (Android)notification (iOS) | The notification the user received. See OSNotification for the full list of properties. |
OSNotificationAction | getAction() (Android)action (iOS) | The action the user took on the notification. String - getActionId() Enum - getType() (“Opened”, “ActionTaken”) |
OSNotification
Class
The OSNotification
class is composed of all getters. The class combines the original OSNotification
with data previously on the OSNotificationPayload
class into a single large OSNotification
class.
More details in OSNotification Payload.
OSNotificationAction
Class
The action the user took on the notification.
More details in OSNotification Payload.
Background Notification Received Event
Android Background Notification Received Event
Requires native code. See Android Notification Service Extension for more details.
iOS Background Notification Received Event
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
method
Apple provides this method to indicate a notification was received when your app is running in the foreground or background. This method allows data to be fetched while the app is running in the background. See details and discussion for requirements in Apple’s Developer Documentation.
If your app is force-quite, this method will not run and requires the Service Extensions for detection.
You must have background mode enabled and send the push with content_available
in the iOS Message Settings for method to be called while app is in background.