Aller au contenu principal

Android - Implémenter une Inbox

Dans cette page, vous apprendrez comment créer une boîte de réception (inbox) au sein de votre application avec toutes les options à votre disposition pour créer une excellente expérience de messagerie pour vos utilisateurs.

Avec notre bibliothèque, il est extrêmement simple de mettre en œuvre une boîte de réception intégrée à l'application. La mise en place d'une boîte de réception augmente considérablement le taux d'engagement de vos notifications simplement parce que les messages seront toujours disponibles dans votre application.

La fonctionnalité de boîte de réception est activée par défaut lorsque l'équipe Actito met en place votre intégration.

Après avoir activé cette fonctionnalité, vous pouvez commencer à implémenter votre boîte de réception dans n'importe quelle activité ou fragment de votre application.

Boîte de réception au niveau de l'appareil

L'approche standard consiste à utiliser la boîte de réception au niveau de l'appareil. Chaque appareil aura sa propre boîte de réception indépendante, quel que soit l'utilisateur associé. La boîte de réception au niveau de l'appareil est disponible via le module re.notifica:notificare-inbox. La boîte de réception elle-même est exposée en tant que LiveData, il est donc très facile de relier vos activités ou fragments à une liste d'éléments de la boîte de réception, par exemple :

Notificare.inbox().observableItems.observe(this, { items ->
// Do something with the items.
})

De la même manière, vous pouvez écouter le nombre de messages non lus.

Notificare.inbox().observableBadge.observe(this, { badge ->
// Do something with the badge.
})

Si vous ne souhaitez pas utiliser LiveData, vous pouvez toujours récupérer les éléments et le badge dans la boîte de réception.

// Items
Notificare.inbox().items

// Badge
Notificare.inbox().badge

Gérer les éléments de la boîte de réception

En supposant que vous déteniez une référence à un élément, pour ouvrir un élément de la boîte de réception, vous feriez simplement quelque chose comme ceci :

val item: NotificareInboxItem

Notificare.inbox().open(item, object : NotificareCallback<NotificareNotification> {
override fun onSuccess(result: NotificareNotification) {
// Optional: Present the notification with Push UI.
Notificare.pushUI().presentNotification(activity, notification)
}

override fun onFailure(e: Exception) {

}
})

Pour supprimer des éléments de la boîte de réception, vous invoquerez la méthode suivante :

val item: NotificareInboxItem

Notificare.inbox().remove(item, object : NotificareCallback<Unit> {
override fun onSuccess(result: Unit) {

}

override fun onFailure(e: Exception) {

}
})

De plus, vous pouvez également marquer un message comme lu en appelant la méthode suivante :

val item: NotificareInboxItem

Notificare.inbox().markAsRead(item, object : NotificareCallback<Unit> {
override fun onSuccess(result: Unit) {

}

override fun onFailure(e: Exception) {

}
})

Ou marquez tous les messages comme lus en appelant la méthode suivante :

Notificare.inbox().markAllAsRead(object : NotificareCallback<Unit> {
override fun onSuccess(result: Unit) {

}

override fun onFailure(e: Exception) {

}
})

Pour supprimer tous les éléments de la boîte de réception, procédez comme suit :

Notificare.inbox().clear(object : NotificareCallback<Unit> {
override fun onSuccess(result: Unit) {

}

override fun onFailure(e: Exception) {

}
})