Push Callbacks
Initializing Netmera SDK with Callbacks
When initializing Netmera, you can register different types of callbacks:
In-App Message Callbacks (
.nmInAppMessageActionCallbacks()
)Push Action Callbacks (
.nmPushActionCallbacks()
)Web Widget Callbacks (
.nmWebWidgetCallbacks()
)
Step 1: Initialize Netmera SDK with Callbacks
During the initialization of Netmera, specify which callbacks your app should handle and include the callback lines during the initialization step (Step 5: Initialize Netmera SDK).
.nmInAppMessageActionCallbacks()
.nmPushActionCallbacks()
.nmWebWidgetCallbacks()
override fun onCreate() {
super.onCreate()
val configBuilder = NetmeraConfiguration.Builder()
.apiKey(apiKey)
.firebaseSenderId(PropertiesUtil.gcmSenderId)
.huaweiSenderId(PropertiesUtil.hmsSenderId) // For Huawei services
.logging(true) // Enables Netmera logs in Logcat
.nmInAppMessageActionCallbacks(NGInAppMessageActionCallbacks()) // In-App Message Callback
.nmPushActionCallbacks(NGPushActionCallbacks()) // Push Action Callback
.nmWebWidgetCallbacks(NGWebWidgetCallbacks()) // Web Widget Callback
Netmera.init(configBuilder.build(this))
}
Step 2: Implement a Receiver Class
Extend
NetmeraPushBroadcastReceiver
and override the necessary callback methods. Avoid usingToast
messages in the production environment.
In-App Action Calllback
To trigger an in-app callback, select the banner style in the Netmera control panel.
The pop-up style will not trigger the callback.
inner class NGInAppMessageActionCallbacks : NMInAppMessageActionCallbacks {
private val TAG = "sample"
fun onInAppMessageShown(context: Context?, inAppMessage: NetmeraInAppMessage) {
Toast.makeText(
context,
"onInAppMessageShown triggered :: " + inAppMessage.getId(),
Toast.LENGTH_SHORT
).show()
Log.i(TAG, "onInAppMessageShown triggered :: " + inAppMessage.getId())
}
fun onInAppMessageOpen(context: Context?, inAppMessage: NetmeraInAppMessage) {
Toast.makeText(
context,
"onInAppMessageOpen triggered :: " + inAppMessage.getId(),
Toast.LENGTH_SHORT
).show()
Log.i(TAG, "onInAppMessageOpen triggered :: " + inAppMessage.getId())
}
fun onInAppMessageDismissed(context: Context?, inAppMessage: NetmeraInAppMessage) {
Toast.makeText(
context,
"onInAppMessageDismissed triggered :: " + inAppMessage.getId(),
Toast.LENGTH_SHORT
).show()
Log.i(TAG, "onInAppMessageDismissed triggered :: " + inAppMessage.getId())
}
}
Push Action Calllback
inner class NGPushActionCallbacks : NMPushActionCallbacks {
fun onPushRegister(
context: Context?,
gcmSenderId: String?,
pushToken: String?
) {
Log.v("sample", "onPushRegister")
// Example: PushRegisterIdlingResource.registeredToPush();
// Example: EventBus.getDefault().postSticky(GCMRegistrationEvent(pushToken));
}
fun onPushReceive(
context: Context?,
bundle: Bundle?,
netmeraPushObject: NetmeraPushObject?
) {
Log.v("sample", "onPushReceive")
EventBus.getDefault().post(PushReceivedEvent(netmeraPushObject))
}
fun onPushOpen(
context: Context?,
bundle: Bundle?,
netmeraPushObject: NetmeraPushObject?
) {
Log.v("sample", "onPushOpen")
}
fun onPushDismiss(
context: Context?,
bundle: Bundle?,
netmeraPushObject: NetmeraPushObject?
) {
Log.v("sample", "onPushDismiss")
}
fun onPushButtonClicked(
context: Context?,
bundle: Bundle?,
netmeraPushObject: NetmeraPushObject?
) {
Log.v("sample", "onPushButtonClicked")
}
// ==> For Netmera SDK versions 3.9.1 and above
fun onCarouselObjectSelected(
context: Context?,
bundle: Bundle?,
netmeraPushObject: NetmeraPushObject?,
selectedIndex: Int,
netmeraCarouselObject: NetmeraCarouselObject?
) {
Log.v("sample", "onCarouselObjectSelected")
}
}
Widget Callback Methods
Implement the
NMWebWidgetCallbacks
interface and override theonDeeplinkTriggered()
andonOpenUrlTriggered()
methods.

inner class NGWebWidgetCallbacks : NMWebWidgetCallbacks {
override fun onDeeplinkTriggered(deeplink: String) {
Log.i("NetmeraApp", "Deeplink was triggered and should be handled by app. :: $deeplink")
}
override fun onOpenUrlTriggered(url: String) {
Log.i("NetmeraApp", "OpenUrl was triggered and should be handled by app. :: $url")
}
override fun onWebWidgetShown(url: String) {
Log.i("NetmeraApp", "WebWidget shown :: $url")
}
override fun onWebWidgetDismiss(url: String) {
Log.i("NetmeraApp", "WebWidget dismiss :: $url")
}
}
Last updated
Was this helpful?