--- title: "In-App Messaging" slug: "in-app-messaging-react-native-engage" updated: 2026-04-13T15:36:01Z published: 2026-04-13T15:36:01Z canonical: "docs.mapp.com/in-app-messaging-react-native-engage" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.mapp.com/llms.txt > Use this file to discover all available pages before exploring further. # In-App Messaging ## Introduction The plugin supports triggered in-app messages on both platforms, and a persistent inbox with rich message support on iOS. Message state management (read, unread, deleted) is available on iOS only. ## Triggering In-App Messages Trigger an in-app message by event name. The SDK displays the configured message if one exists for that event in Mapp Engage. ```javascript Mapp.triggerInApp('your-event-name'); ``` ## Inbox Messages (iOS) ### Fetch Messages Results are delivered asynchronously via the inbox listener. ```javascript await Mapp.fetchInboxMessage(); ``` ### Subscribe to Inbox Updates ```javascript const sub = Mapp.addInboxMessagesListener((messages) => {  console.log('Inbox messages:', messages); }); sub.remove(); ``` To receive individual message events: ```javascript const sub = Mapp.addInboxMessageListener((message) => {  console.log('Inbox message:', message); }); sub.remove(); ``` ### Message State Update the state of an inbox message. On Android (SDK v7), these methods have no effect. ```javascript Mapp.inAppMarkAsRead(templateId, eventId); Mapp.inAppMarkAsUnRead(templateId, eventId); Mapp.inAppMarkAsDeleted(templateId, eventId); ``` - `templateId` (number): Template ID of the message. - `eventId` (string): Event ID of the message. ## Rich Messages (iOS) Subscribe to rich push message content. ```javascript const sub = Mapp.addRichMessagesListener((richMessage) => {  console.log('Rich message:', richMessage); }); sub.remove(); ``` ## SDK Init Event (iOS) Fires when iOS SDK initialization completes. Use this to delay actions that depend on the SDK being fully ready. ```javascript const sub = Mapp.addInitListener((event) => {  console.log('SDK ready:', event); }); sub.remove(); ```