registerCustomMessages

public final Unit registerCustomMessages(List<Class<? extends MessageContent>> messageClasses)

Register custom message types.

Business party Via Inherits CustomMessageContent or CustomMediaMessageContent Define Custom message, and In initialize After, connect Before Call This Method Register.

SDK internal will auto-complete:

  • read objectName, persistentFlag etc. meta Data

  • direction internal Register Message class type

  • In Send/Receive When auto-complete encoding Decode

Parameters

identifier

Handle handler unique Identifier, Used for subsequent Remove

// 1. Define Custom message (Inherits CustomMessageContent)
class CardMessage : CustomMessageContent() {
var title: String = ""
var imageUrl: String = ""
var linkUrl: String = ""

override fun messageType(): String = "app:card"
override fun persistentFlag(): Int = MessageFlag.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 ?: ""
}
}

NCEngine.registerCustomMessages(listOf(CardMessage::class.java))
NCEngine.registerCustomMessages(listOf(CardMessage::class.java))

CustomMessageContent or CustomMediaMessageContent ========================================