Skip to content

Latest commit

 

History

History
64 lines (53 loc) · 1.84 KB

messaging.md

File metadata and controls

64 lines (53 loc) · 1.84 KB

Messaging (Push Kit)

Messaging consists of two different parts: Messaging and MessagingService. The difference is that the Messaging instance is used to send messages upstream and subscribe to topics, whereas the MessagingService handles downstream messages.

Setup

Be sure to active Huawei Push Kit in AppGallery Connect!

Usage

Subscribe to token changes:

val tokenObserver = object : DisposableObserver<String>() {
    override fun onNext(token: String) {}
    override fun onError(e: Throwable?) {}
    override fun onComplete() {}
}
MessagingRepositoryFactory.getMessagingService()
    .getNewTokenObservable()
    .subscribeWith(tokenObserver)

Get token once:

MessagingRepositoryFactory.getMessagingService()
    .requestToken(context)

Receive messages:

val messageObserver: DisposableObserver<RemoteMessage> = object : DisposableObserver<RemoteMessage>() {
    override fun onNext(remoteMessage: RemoteMessage) {
        val from = remoteMessage.from
        val data = remoteMessage.data
        val title = remoteMessage.notification?.title
    }

    override fun onError(e: Throwable?) {}
    override fun onComplete() {}
}

MessagingRepositoryFactory.getMessagingService()
    .getMessageReceivedObservable()
    .observeOn(AndroidSchedulers.mainThread())
    .subscribeWith(messageObserver)

Subscribe to topic:

MessagingFactory.getMessaging().subscribeToTopic("News")

Send message:

val message = RemoteMessage
    .Builder(destination)
    .setMessageId(id)
    .addData("my_message", "Hello World")
    .build()
MessagingFactory.getMessaging().send(message)

Links