register Custom Messages
Registers custom message types.
Define custom messages by extending CustomMessageContent or CustomMediaMessageContent, then call this method after initialize and before connect to register them.
The SDK will automatically:
Read metadata such as message type identifier and storage policy
Register the message class type internally
Handle encoding and decoding during send/receive
// 1. Define a custom message (extends CustomMessageContent)
class CardMessage : CustomMessageContent() {
var title: String = ""
var imageUrl: String = ""
var linkUrl: String = ""
override fun messageType(): String = "app:card"
override fun persistentFlag(): Int = MessagePersistent.COUNT
override fun encodeFields(): Map<String, Any?> = mapOf(
"title" to title,
"imageUrl" to imageUrl,
"linkUrl" to linkUrl
)
override fun decodeFields(fields: Map<String, Any?>) {
title = fields["title"] as? String ?: ""
imageUrl = fields["imageUrl"] as? String ?: ""
linkUrl = fields["linkUrl"] as? String ?: ""
}
}
// 2. Register the custom message
NCEngine.registerCustomMessages(listOf(CardMessage::class.java))Content copied to clipboard
Parameters
message Classes
List of custom message classes extending CustomMessageContent or CustomMediaMessageContent