An open API service indexing awesome lists of open source software.

https://github.com/Cap-go/capacitor-realtimekit

Capacitor plugin to use Cloudflare realtime kit
https://github.com/Cap-go/capacitor-realtimekit

Last synced: about 1 month ago
JSON representation

Capacitor plugin to use Cloudflare realtime kit

Awesome Lists containing this project

README

          

# capacitor-realtimekit
Capgo - Instant updates for capacitor


➡️ Get Instant updates for your App with Capgo


Missing a feature? We'll build the plugin for you 💪


Cloudflare Calls integration for Capacitor apps with built-in UI for meetings.

## Documentation

The most complete doc is available here: https://capgo.app/docs/plugins/realtimekit/

## Compatibility

| Plugin version | Capacitor compatibility | Maintained |
| -------------- | ----------------------- | ---------- |
| v8.\*.\* | v8.\*.\* | ✅ |
| v7.\*.\* | v7.\*.\* | On demand |
| v6.\*.\* | v6.\*.\* | ❌ |
| v5.\*.\* | v5.\*.\* | ❌ |

> **Note:** The major version of this plugin follows the major version of Capacitor. Use the version that matches your Capacitor installation (e.g., plugin v8 for Capacitor 8). Only the latest major version is actively maintained.

## Install

```bash
npm install @capgo/capacitor-realtimekit
npx cap sync
```

## Dependencies

This plugin uses the Cloudflare RealtimeKit SDK:

- **iOS**: [RealtimeKitCoreiOS](https://github.com/dyte-in/RealtimeKitCoreiOS) (automatically installed via Swift Package Manager)
- **Android**: `com.cloudflare.realtimekit:ui-android` version `0.2.2` (can be customized via gradle variable `realtimekitUiVersion`)

### Customizing Android RealtimeKit Version

In your app's `build.gradle`:

```gradle
buildscript {
ext {
realtimekitUiVersion = '0.2.2' // or your desired version
}
}
```

## Platform Support

- **iOS**: ✅ Supported (iOS 14.0+)
- **Android**: ✅ Supported (API 24+)
- **Web**: ❌ Not supported (native only)

## iOS Configuration

Add the following to your app's `Info.plist` file:

```xml
NSCameraUsageDescription
We need camera access for video calls
NSMicrophoneUsageDescription
We need microphone access for audio calls
NSPhotoLibraryUsageDescription
We need photo library access to share images
NSBluetoothPeripheralUsageDescription
We need Bluetooth access for audio routing

UIBackgroundModes

audio
voip
fetch
remote-notification

```

## Android Configuration

Add the following permissions to your app's `AndroidManifest.xml` file:

```xml

```

## API

* [`initialize()`](#initialize)
* [`startMeeting(...)`](#startmeeting)
* [`getPluginVersion()`](#getpluginversion)
* [Interfaces](#interfaces)

Capacitor RealtimeKit Plugin for Cloudflare Calls integration.

### initialize()

```typescript
initialize() => Promise
```

Initializes the RealtimeKit plugin before using other methods.

**Since:** 7.0.0

--------------------

### startMeeting(...)

```typescript
startMeeting(options: StartMeetingOptions) => Promise
```

Start a meeting using the built-in UI.
Only available on Android and iOS.

| Param | Type | Description |
| ------------- | ------------------------------------------------------------------- | --------------------------------------- |
| **`options`** | StartMeetingOptions | - Configuration options for the meeting |

**Since:** 7.0.0

--------------------

### getPluginVersion()

```typescript
getPluginVersion() => Promise<{ version: string; }>
```

Get the native Capacitor plugin version.

**Returns:** Promise<{ version: string; }>

**Since:** 7.0.0

--------------------

### Interfaces

#### StartMeetingOptions

Configuration options for starting a meeting.

| Prop | Type | Description | Default | Since |
| ----------------- | -------------------- | ------------------------------------------------------------------------------------------------------ | ----------------- | ----- |
| **`authToken`** | string | Authentication token for the participant. This token is required to join the Cloudflare Calls meeting. | | 7.0.0 |
| **`enableAudio`** | boolean | Whether to join with audio enabled. Default is true. | true | 7.0.0 |
| **`enableVideo`** | boolean | Whether to join with video enabled. Default is true. | true | 7.0.0 |