Push Messaging Guide
This guide will show you how to integrate the Webex Connect Push Messaging capability into your Android application.
Please ensure you have integrated the In-App Messaging Module by following the Quick Start Guide.
To register notification channel
Starting in Android 8.0 (API level 26), all notifications must be assigned to a channel or they will not be displayed. Channels allow users greater control over their notifications. Users may disable specific channels or control the visual and auditory options for each channel directly from the Android system settings app. Users may also long-press a notification to change behaviours for the associated channel. For more info on the Notification Channel, refer to the Android official documentation on the notification channel.
// Sample code to register Notification channel:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//Provide your channel name & description that will be visible to the user. These will need configuring in your strings.xml
val name = getString(R.string.channel_name)
val description = getString(R.string.channel_description)
//A channel registered with the id of NotificationFactory.DEFAULT_CHANNEL_ID is required as a minimum
val channel = NotificationChannel(NotificationFactory.DEFAULT_CHANNEL_ID, name, NotificationManager.IMPORTANCE_DEFAULT) channel.description = description
// Register the channel with the system
val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannel(channel)
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Provide your channel name & description that will be visible to the user. These will need configuring in your strings.xml
String name = getString(R.string.channel_name);
String description = getString(R.string.channel_description);
// A channel registered with the id of NotificationFactory.DEFAULT_CHANNEL_ID is required as a minimum.
NotificationChannel channel = new NotificationChannel(NotificationFactory.DEFAULT_CHANNEL_ID, name, NotificationManager.IMPORTANCE_DEFAULT);
channel.setDescription(description);
// Register the channel with the system
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(channel);
}
Notification Customization
To customize the notification build process, you need to implement and set the callback on the default NotificationFactory
instance as follows:
class MyNotificationBuilder: NotificationBuilderCallback
{
override fun getActionIconId(
context: Context,
message: PushMessage,
action: String,
identifier: String
): Int
{
//Return id of the icon specific to the action
return 0
}
override fun onBuildNotification(
context: Context,
message: PushMessage,
notificationId: Int,
builder: NotificationCompat.Builder
)
{
//Customize notification build process here
}
}
//Set your notification builder callback.
PushMessaging.instance.notificationFactory?.notificationBuilderCallback = MyNotificationBuilder()
Alternatively, to entirely replace the inbuilt notification build process, set PushMessaging.instance.notificationFactory
to your custom implementation, like so:
//Implement your NotificationFactory and override the createNotification method with your custom implementation.
class MyNotificationFactory : NotificationFactory {
}
PushMessaging.instance.notificationFactory = MyNotificationFactory()
Register Push Listener
PushMessaging.instance.registerMessagingListener { pushMessage: PushMessage ->
//Handle push
}
val pushMessage = PushMessaging.instance
PushMessaging.getInstance().registerMessagingListener(pushMessage -> {
//Handle push
return Unit.INSTANCE;
});
With this you have successfully integrated the Push Messaging module in your app.
Updated about 1 month ago