One Thread
See a demonstration
← All resources

Guide

RCS on iPhone versus Android: what changes and how to design for both

RCS is built on the GSMA Universal Profile 2.4 standard. Both Apple (iOS 18.1+) and Google Messages (Android) follow this standard, but each platform built its own renderer. The same message payload can look and behave differently on each device.

This guide compares the iOS and Android experience for each mCommons message type so you can design campaigns that work well on both.

Note: This reflects iOS 26.2 and Google Messages behavior as of September 2026.

Can We Detect iOS versus Android?

No. The carrier capability check returns only whether a number can receive RCS (ENABLED or UNREACHABLE). No device type, no OS, no platform. Delivery reports don't include it either. This is by design in the RCS protocol, the GSMA spec is feature-based, not device-based. Every message must be designed for both platforms from the start.

1. Basic (160 characters)

Plain text with optional suggested replies and/or suggested actions.

iOS experience

Text: Renders identically to Android.

Suggested replies: Appear as a persistent vertical list below the message. Stay visible until tapped. Remain on screen even after the subscriber interacts with one.

Suggested actions (one): Displays as a normal button.

Suggested actions (two or more): Collapses into a vertical dropdown menu labeled "Options." Each action shown in a table-style list with an icon (phone, map, calendar, link). Requires an extra tap to reveal the options.

Mixing actions and replies: All actions are grouped above all replies, regardless of the order you define them.

Android experience

Text: Renders identically to iOS.

Suggested replies: Appear as horizontal transient chips below the message. Disappear after the subscriber responds or a new message arrives.

Suggested actions (any count): All actions display as distinct pill-shaped inline buttons, regardless of how many there are.

Mixing actions and replies: Respects your defined order.

Comparison

Recommendations

  • Use 1 suggested action per message to avoid the iOS "Options" dropdown
  • Place your primary action first
  • Keep suggested reply lists short (3-5 options)

2. Enhanced (up to 3,072 characters, no media)

Longer text with suggested replies and/or suggested actions. Requires a calendar, show_location, or request_location action in mCommons. No media.

iOS experience

Text: Renders the full text. Long messages scroll normally.

Suggested replies: Same as Basic, persistent vertical list below the message.

Suggested actions (one): Normal button. Since Enhanced requires a calendar or location action, the message always has at least one.

Suggested actions (two or more): Same "Options" dropdown as Basic. Adding a second action (like Open URL) alongside the required calendar/location action triggers the dropdown.

Mixing actions and replies: Same as Basic, actions grouped above replies regardless of defined order.

Android experience

Text: Renders the full text. Long messages scroll normally.

Suggested replies: Same as Basic, transient horizontal chips.

Suggested actions (any count): All actions display as inline pill buttons.

Mixing actions and replies: Respects your defined order.

Recommendations

  • The required calendar/location action counts toward your total, adding a second action triggers the iOS dropdown
  • If you need both a calendar action and a URL, use the calendar as the single suggested action
  • Keep suggested reply lists short

3. Rich Card

Media + title + description + suggested actions/replies in one card. Up to 4 suggestions per card, plus up to 11 message-level suggestions.

iOS experience

Card layout: Compact card with truncated text. Grey, low-prominence buttons.

Suggested actions: Render on the card itself.

Suggested replies: Render outside the card as a separate persistent list below it. Visually detached from the card content.

Multiple actions: Same "Options" dropdown behavior, two or more actions collapse into the dropdown menu on the card.

Text: Truncates titles and descriptions at approximately 3 lines. Tapping the card opens a full-text view, but that expanded view shows only text, media and suggestion buttons disappear.

Missing title: Lock screen notification and conversation list show "One Message" instead of card content.

Media height: Ignores the media.height parameter (SHORT/MEDIUM/TALL). All cards render at the same height.

GIFs: Display as static images. First frame only.

Media with large text sizes: iOS prioritizes title and button display. Media can be severely cropped or nearly hidden when subscribers use accessibility text sizes.

Portrait images: Preserves the aspect ratio.

Android experience

Card layout: Full card with more visible text. Full-color buttons that stand out.

Suggested actions: Render on the card as inline buttons.

Suggested replies: Also render on the card as inline buttons, alongside actions. No visual separation between the two types.

Multiple actions: All display as inline buttons on the card.

Text: Shows more text before truncating. The expanded view keeps media and suggestions alongside the text.

Missing title: Shows the body text in previews.

Media height: Respects the SHORT/MEDIUM/TALL setting as specified.

GIFs: Animated. Plays in the card.

Media with large text sizes: Maintains media visibility alongside enlarged text and buttons.

Portrait images: Center-crops to fit the card width.

Comparison

ElementiOSAndroid
ActionsOn the cardOn the card
RepliesOutside/below the cardOn the card with actions
Multiple actions"Options" dropdownInline buttons
Text overflow~3 lines, expand shows text onlyMore visible, expand includes media
No title"One Message" in previewShows body text
Height paramIgnoredRespected
ButtonsGrey, subtleFull color
GIFsStaticAnimated
Large text + mediaMedia croppedMedia preserved
Portrait imagesAspect ratio preservedCenter-cropped

Media safe zones

Recommendations

  • Always include a title (avoids "One Message" on iOS)
  • Keep titles and descriptions to 3 lines or less
  • Use "vertical tall" as the height setting
  • Use 1 suggested action per card
  • Write reply text that makes sense when detached from the card (iOS shows replies separately)
  • Design GIF creative so the first frame works standalone
  • Keep media content inside the 16:9 safe zone
  • Use clear button text (don't rely on button color)
  • Don't rely on the expanded text view (media and CTAs disappear on iOS)

4. Carousel

Two to ten Rich Cards in one message. Each card has media + title + description + per-card suggestions. Also supports message-level suggestions.

iOS experience

Layout: Cards render as a vertical stack with a "1 of N" counter. Subscribers flip through one card at a time.

Per-card actions: Render on each card.

Per-card replies: Render outside the card area. They update dynamically as the subscriber flips through cards, the replies shown correspond to whichever card is currently in view.

Message-level suggestions: Stay constant regardless of which card is in view.

Text: Same 3-line truncation as standalone Rich Cards. Tap-to-expand hides media and suggestions.

Card sizing: Each card sized based on its content. Cards in the same carousel can appear at different heights.

GIFs: Static.

Media with large text: Same cropping behavior as Rich Cards.

Multiple actions per card: Same "Options" dropdown.

Android experience

Layout: Cards render as a horizontal, swipeable row. Subscribers browse side by side and can compare cards.

Per-card actions: Render on each card as inline buttons.

Per-card replies: Also render on each card as inline buttons within the horizontal row.

Message-level suggestions: Display below the carousel.

Text: More text visible before truncation. Expanded view includes media and suggestions.

Card sizing: Uniform sizing using center-cropping for consistency across cards.

GIFs: Animated.

Media with large text: Maintains visibility.

Multiple actions per card: All display as inline buttons.

Comparison

ElementiOSAndroid
LayoutVertical stack, "1 of N"Horizontal swipeable row
Per-card actionsOn each cardOn each card
Per-card repliesOutside card, updates per flipOn each card
Card sizingVaries by contentUniform via center-crop
Text overflow~3 lines, expand hides mediaMore visible, expand includes media
GIFsStaticAnimated
Large text + mediaCroppedPreserved

Media safe zones

Carousel cards have less vertical space. Use a 3:2 aspect ratio with a 25:9 safe zone for critical content.

Recommendations

  • Design each card to stand on its own (iOS shows one at a time, not side by side)
  • Use consistent content lengths and image sizes across cards
  • Use 1 suggested action per card
  • Write per-card replies that make sense in isolation (iOS shows one card's replies at a time)
  • Put navigation actions (menu, help) as message-level suggestions, not per-card
  • Place the most important card first
  • Keep text to 3 lines or less per card
  • Keep media inside the 25:9 safe zone

General Platform Differences

These apply across all message types.

Sender branding

iOSAndroid
First messageMay briefly show Agent ID while fetching brand assetsShows brand name immediately
Privacy policyNot visibleVisible
Agent bannerNot visibleVisible
Contact detailsFirst contact per type onlyAll entries
iMessage on MacNo agent name or descriptionN/A

Put your most important contact entry first. iOS shows only the first per type.

Suggestion persistence

iOSAndroid
On-card suggestionsPersist after tappingPersist after tapping
Message-level suggestionsPersist after tappingDisappear after tapping

Design Checklist

All message types:

  • At most 1 suggested action per message or card
  • Primary action listed first
  • Tested on both iOS and Android before launch

Basic and Enhanced:

  • Suggested reply lists kept short (3-5 options)

Rich Card:

  • Title included
  • Title and description fit within 3 lines
  • Height setting is "vertical tall"
  • Reply text makes sense when displayed separately from the card
  • GIF creative works as a static image
  • Media content inside 16:9 safe zone

Carousel:

  • Each card makes sense on its own
  • Consistent content lengths and image sizes across cards
  • Per-card replies make sense shown one at a time
  • Navigation actions placed as message-level suggestions
  • Most important card placed first
  • Media content inside 25:9 safe zone

Sources

Want this for your program?

We will build the flow against your list, your CRM and your calendar, and show you what it does before you commit to anything.

See it on your list2 questions, then a calendar