@clariodesk/react-native-push), so Firebase’s
native code never autolinks into a host that doesn’t want it. Your app owns the
messaging plugin; the SDK receives tokens through a PushTokenProvider seam.
Install
Wire the token provider
Route messages in your background handler
In your shared background/foreground handler, hand ClarioDesk messages back to the SDK so they don’t collide with your app’s own notifications:Route notification taps
0.3.0+ payloads contain an opaque delivery handle, never a ticket id. Resolve
it through the signed SDK and route the authorized result:
data.ticketId or payload.ticketId. The private target comes
only from resolvePushTarget after device, identity, app, customer, and ticket
authorization are rechecked.
Wire both background and killed-app opens:
openFromPush(data) from
@clariodesk/react-native/ui; it resolves and opens the exact destination.
Custom-screen attention
The prebuilt inbox/thread tracks focus automatically. For custom navigation, mark only the route the user can actually see:{ kind: 'inbox' } on the support inbox. Imperative/custom routers may
call ClarioDesk.setVisibleSupportSurface(...) on focus and
ClarioDesk.clearVisibleSupportSurface() on blur. The SDK clears remotely on
background and restores on resume only while the same route remains focused.
Preferences
Remote push is not available in Expo Go. Use a dev build / EAS for push.
The attention-aware backend never uses app-wide presence to suppress push.
Only a focused inbox/matching ticket plus an acknowledgement of that rendered
delivery suppresses its banner. Everywhere else alerts immediately; a stale
lease can delay fallback by at most two seconds. See the
push concept page.