---
title: Web View SDK
slug: web-view-sdk
createdAt: 2026-11-03T10:14:13.358Z
---

The Kindly web view SDK shows Kindly's chat in your app. It hosts the Kindly web chat widget in a native web view (`WKWebView` on iOS, Android `WebView` on Android) and connects it to your app through a bridge that validates every message in both directions. Your app starts the chat, shows and hides it, sends messages, triggers dialogues, passes context, authenticates its users and listens to chat events. The chat's look, texts and behaviour come from your bot's settings in the Kindly platform, so it looks and behaves like the Kindly chat on your website

It is a sibling of the native Kindly SDK, which draws the chat with native views. The two can live in one app, see [Next to the Native SDK](docId\:vzagG8GySkzqHIo0EwbEz)

:::hint{type="success"}
**Agent-assisted setup**

Point your AI coding assistant at the integration guide and it installs the SDK, starts it and shows the chat for you. Prompt to copy:

```text
Use curl to download, read and follow: https://kindly-ai.github.io/sdk-chat-webview-sources/SKILL.md
```
:::

## Packages

| Platform     | Package                                | Minimum                                                                    |
| ------------ | -------------------------------------- | -------------------------------------------------------------------------- |
| iOS          | `KindlyWebView`, Swift Package Manager | iOS 15.4                                                                   |
| Android      | `ai.kindly:sdk-webview`, Maven Central | Android 5.0 (API 21), `compileSdk` 35                                      |
| Flutter      | `kindly_webview`, pub.dev              | Flutter 3.27 and Dart 3.6, iOS 15.4, Android `minSdk` 24                   |
| React Native | `@kindly-ai/react-native-webview`, npm | React Native 0.82 with the New Architecture, iOS 15.4, Android `minSdk` 24 |

The four packages share one version, 1.0.0, and are released together. The Flutter and React Native packages carry the iOS and Android SDKs inside them, so your app adds nothing else. [Installation](docId\:sonmjcrRZMUEA1QI1eg5q) lists every requirement

## Quick start

::::Tabs
:::Tab{title="iOS"}
```swift
import KindlyWebView

KindlyWebViewSDK.start(botKey: "YOUR_BOT_KEY", market: "general")
KindlyWebViewSDK.displayChat()
```
:::

:::Tab{title="Android"}
```kotlin
import ai.kindly.webview.KindlyWebViewSDK

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        KindlyWebViewSDK.start(application = this, botKey = "YOUR_BOT_KEY", market = "general")
    }
}

// later, from an Activity
KindlyWebViewSDK.launchChat(this)
```
:::

:::Tab{title="Flutter"}
```dart
import 'package:kindly_webview/kindly_webview.dart';

await KindlyWebViewSDK.start(botKey: 'YOUR_BOT_KEY', market: 'general');
await KindlyWebViewSDK.displayChat();
```
:::

:::Tab{title="React Native"}
```typescript
import { KindlyWebViewSDK } from '@kindly-ai/react-native-webview';

await KindlyWebViewSDK.start({ botKey: 'YOUR_BOT_KEY', market: 'general' });
await KindlyWebViewSDK.displayChat();
```
:::
::::

Replace `YOUR_BOT_KEY` with your bot's key and `general` with a market configured for the bot. The market is required, see [Markets](docId\:hY7NowSOuz-mdL-_zIZeL)

## Guides

- Getting started: [Installation](docId\:sonmjcrRZMUEA1QI1eg5q), [Initialization](docId\:MqmlgrN2Nv8ye8otUkYqC), [Markets](docId\:hY7NowSOuz-mdL-_zIZeL) and [Configuration](docId\:ki6dE8DkffvzmLIj7LAaH)
- Chat lifecycle: [Launch Chat](docId\:Yjruacdl_gPttkM6yK-4V), [Close Chat](docId\:GoowcByKs8CVJelALefVN), [End Chat](docId\:uCgQWla-zeq6uPJDBKGUX) and [Kill SDK](docId\:dENUQuvDOyrpbKayCfLZb)
- Features: [Events](docId\:e5k7rv4jg1Xml35TaMd_t), [Authentication](docId\:ObaH52zBKe08oBMXxiXu3), [Context](docId\:Q7UnBbDaHkj-EG0eqRGhl), [Send a Message](docId:_m000gMTZT87SAZ5w0nB6), [Trigger Dialogue](docId\:bzasWgQ07FjNdFolleV_s), [Uploads and Downloads](docId\:sYyy1a7npNkGoavK_NOvO) and [Link Interception](docId:1D_RWHC_US3g18s-OBWW4)
- Operations: [Logging and Crash Reporting](docId\:CvwcNYrweCJNxeWTZCRY1), [Privacy and Data](docId\:gyIQwGQKBb66C-HH3gIpp), [Errors](docId\:RRLh0LP2LvUdYOYKVEyLB), [Checking Support](docId\:rVK8U_4vS0e5eH7w2XIWL), [Next to the Native SDK](docId\:vzagG8GySkzqHIo0EwbEz) and [Limitations](docId:8OdlsdEiZ6IvHgzliXtSb)

Every code sample comes in four tabs, one per platform. The tab you pick stays picked on every page

## API reference

The API reference lists every public type and call of each package, generated from the sources of this version
