---
title: Launch Chat
slug: web-view-sdk-launch-chat
createdAt: 2026-11-03T10:14:14.993Z
---

Show the chat after `start`. The first call loads the widget, and later calls reopen the same conversation at once

## Show the chat

::::Tabs
:::Tab{title="iOS"}
```swift
KindlyWebViewSDK.displayChat()
KindlyWebViewSDK.displayChat(triggerDialogueId: "DIALOGUE_ID")
KindlyWebViewSDK.displayChat(languageCode: "nb")
```

The chat opens as a full-height sheet over the top view controller. People close it with the chat's minimise button or by swiping the sheet down. Before `start`, `displayChat` logs an error and does nothing
:::

:::Tab{title="Android"}
```kotlin
KindlyWebViewSDK.launchChat(context)
KindlyWebViewSDK.launchChat(context, triggerDialogueId = "DIALOGUE_ID")
KindlyWebViewSDK.launchChat(context, languageCode = "nb")
```

The chat opens on its own full-screen screen. People close it with the back button or the chat's minimise button. `displayChat(context)` does the same as `launchChat(context)` without the optional arguments

Pass an `Activity` as the context when you can. With any other context the SDK starts the chat screen in a new task. Before `start`, `launchChat` logs an error and does nothing
:::

:::Tab{title="Flutter"}
```dart
await KindlyWebViewSDK.displayChat();
await KindlyWebViewSDK.displayChat(triggerDialogueId: 'DIALOGUE_ID');
await KindlyWebViewSDK.displayChat(languageCode: 'nb');
```

On iOS the chat opens as a full-height sheet, and people close it with the chat's minimise button or by swiping the sheet down. On Android it opens on its own full-screen screen, and the back button or the minimise button closes it. `launchChat` does the same as `displayChat`. Before `start`, both fail with `notStarted`
:::

:::Tab{title="React Native"}
```typescript
await KindlyWebViewSDK.displayChat();
await KindlyWebViewSDK.displayChat({ triggerDialogueId: 'DIALOGUE_ID' });
await KindlyWebViewSDK.displayChat({ languageCode: 'nb' });
```

On iOS the chat opens as a full-height sheet, and people close it with the chat's minimise button or by swiping the sheet down. On Android it opens on its own full-screen screen, and the back button or the minimise button closes it. `launchChat` does the same as `displayChat`. Before `start`, both reject with `NOT_STARTED`
:::
::::

Closing the chat this way keeps the conversation, see [Close Chat](docId\:GoowcByKs8CVJelALefVN)

## Options

`triggerDialogueId` starts that dialogue as the chat opens, see [Trigger Dialogue](docId\:bzasWgQ07FjNdFolleV_s). A `languageCode` other than the live chat's renders the chat again in that language, and takes the format described in [Initialization](docId\:MqmlgrN2Nv8ye8otUkYqC)

When the device or the app cannot run the chat, it shows a notice instead of the chat, see [Checking Support](docId\:rVK8U_4vS0e5eH7w2XIWL)
