You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DevReply.present(category:message:attributes:): message prefills the composer of the new conversation
(never sent on its own; the user can edit it), attributes go to the team as that conversation's context
(text, number or true/false; up to 20). Returns false and shows nothing when DevReply isn't configured
or the chat is switched off; the old present() / present(category:) calls keep compiling.
await DevReply.deleteUser() never gives up: if DevReply can't be reached, the device forgets the user at
once and the deletion is retried (with the old install's token, kept in the Keychain) at every launch and
return to the foreground until the server confirms. true = deleted now, false = queued.
The chat on/off switch from the dashboard: DevReply.isAvailable. While off, present returns false,
the unread bubble and banners stay hidden and an open messenger closes; everything else keeps working.
Events for your analytics: DevReply.addEventListener { event in … } with .messengerOpened, .messengerClosed, .conversationStarted(conversationID:category:), .messageSent(conversationID:); cancel() the returned subscription to stop.
Dark mode, opt-in: DevReply.darkTheme = .dark (DevReply's own "Deep blue" look) or a DevReplyTheme with
your six colours. Without it the chat stays light, exactly as before. Every colour in the chat, its menus and
pickers, the unread bubble and the in-app banner follows the theme; the category icons have dark artwork.