---
title: Capacitor PixLive Plugin for Android & iOS
description: Add augmented reality to your Capacitor app with the PixLive SDK by Vidinoti. Display AR views and manage AR content on Android and iOS.
tags:
  - Android
  - iOS
search:
  boost: 2
faq: true
github_repo: capawesome-team/capacitor-plugins
npm_package: "@capawesome/capacitor-pixlive"
---

# Capacitor PixLive Plugin

Unofficial Capacitor plugin for [PixLive SDK](https://www.vidinoti.com/) by Vidinoti.

## Use Cases

The PixLive plugin is typically used to build augmented reality experiences with content managed in PixLive Maker, for example:

- **Interactive print media**: Bring magazines, flyers, or posters to life with AR content that appears when a context is recognized by the AR camera.
- **Guided tours**: Synchronize tours and contexts to guide visitors through museums, exhibitions, or cities.
- **Location-based experiences**: Trigger content or local notifications when the user approaches GPS points or beacons.
- **QR code interactions**: React to QR codes and barcodes scanned by the AR camera via the `codeRecognize` event.

## Installation

```bash
npm install @capawesome/capacitor-pixlive
npx cap sync
```

### Android

#### SDK Setup

Copy the `vdarsdk-release.aar` file into your app's `android/app/libs/` directory.

### iOS

Please note, that this plugin does not support SPM but only Cocoapods as iOS dependency manager.

#### SDK Setup

The PixLive iOS SDK (`VDARSDK.xcframework`) must be manually added by copying `VDARSDK.xcframework` into `ios/App/Frameworks/` in your Capacitor project.

## Configuration

Configure the plugin in your `capacitor.config.ts`:

```typescript
const config: CapacitorConfig = {
  plugins: {
    Pixlive: {
      licenseKey: 'YOUR_LICENSE_KEY',
      apiUrl: 'https://ar.vidinoti.com/api/api.php', // optional
      sdkUrl: 'https://sdk.vidinoti.com', // optional
    },
  },
};
```

| Prop             | Type                | Description                      | Default                                    |
| ---------------- | ------------------- | -------------------------------- | ------------------------------------------ |
| **`licenseKey`** | <code>string</code> | The PixLive Maker license key.   |                                            |
| **`apiUrl`**     | <code>string</code> | The PixLive Maker API endpoint.  | `https://ar.vidinoti.com/api/api.php`      |
| **`sdkUrl`**     | <code>string</code> | The PixLive SDK resource server. | `https://sdk.vidinoti.com`                 |

## Usage

The following examples show how to synchronize content from PixLive Maker and display the AR view.

### Synchronize content from PixLive Maker

Sync AR content from PixLive Maker filtered by tags so that it is available on the device. Only available on Android and iOS:

```typescript
import { Pixlive } from '@capawesome/capacitor-pixlive';

const synchronize = async () => {
  await Pixlive.synchronize({ tags: [['my-tag']] });
};
```

### Display the AR view

Create the native AR camera view at the specified screen coordinates. Only available on Android and iOS:

```typescript
import { Pixlive } from '@capawesome/capacitor-pixlive';

const createARView = async () => {
  await Pixlive.createARView({ x: 0, y: 0, width: 300, height: 400 });
};
```

## API

<docgen-index>

* [`initialize()`](#initialize)
* [`checkPermissions()`](#checkpermissions)
* [`requestPermissions(...)`](#requestpermissions)
* [`synchronize(...)`](#synchronize)
* [`synchronizeWithToursAndContexts(...)`](#synchronizewithtoursandcontexts)
* [`updateTagMapping(...)`](#updatetagmapping)
* [`enableContextsWithTags(...)`](#enablecontextswithtags)
* [`getContexts()`](#getcontexts)
* [`getContext(...)`](#getcontext)
* [`activateContext(...)`](#activatecontext)
* [`stopContext()`](#stopcontext)
* [`getNearbyGPSPoints(...)`](#getnearbygpspoints)
* [`getGPSPointsInBoundingBox(...)`](#getgpspointsinboundingbox)
* [`getNearbyBeacons()`](#getnearbybeacons)
* [`startNearbyGPSDetection()`](#startnearbygpsdetection)
* [`stopNearbyGPSDetection()`](#stopnearbygpsdetection)
* [`startGPSNotifications()`](#startgpsnotifications)
* [`stopGPSNotifications()`](#stopgpsnotifications)
* [`setNotificationsSupport(...)`](#setnotificationssupport)
* [`setInterfaceLanguage(...)`](#setinterfacelanguage)
* [`createARView(...)`](#createarview)
* [`destroyARView()`](#destroyarview)
* [`resizeARView(...)`](#resizearview)
* [`setARViewTouchEnabled(...)`](#setarviewtouchenabled)
* [`setARViewTouchHole(...)`](#setarviewtouchhole)
* [`getVersion()`](#getversion)
* [`addListener('codeRecognize', ...)`](#addlistenercoderecognize-)
* [`addListener('enterContext', ...)`](#addlistenerentercontext-)
* [`addListener('exitContext', ...)`](#addlistenerexitcontext-)
* [`addListener('presentAnnotations', ...)`](#addlistenerpresentannotations-)
* [`addListener('hideAnnotations', ...)`](#addlistenerhideannotations-)
* [`addListener('eventFromContent', ...)`](#addlistenereventfromcontent-)
* [`addListener('syncProgress', ...)`](#addlistenersyncprogress-)
* [`addListener('requireSync', ...)`](#addlistenerrequiresync-)
* [`removeAllListeners()`](#removealllisteners)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)

</docgen-index>

<docgen-api>
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->

### initialize()

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

Initialize the PixLive SDK.

This must be called before any other method.

Only available on Android and iOS.

**Since:** 0.0.1

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


### checkPermissions()

```typescript
checkPermissions() => Promise<PermissionStatus>
```

Check the status of permissions.

**Returns:** <code>Promise&lt;<a href="#permissionstatus">PermissionStatus</a>&gt;</code>

**Since:** 0.0.1

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


### requestPermissions(...)

```typescript
requestPermissions(options?: PixlivePluginPermission | undefined) => Promise<PermissionStatus>
```

Request permissions.

| Param         | Type                                                                        |
| ------------- | --------------------------------------------------------------------------- |
| **`options`** | <code><a href="#pixlivepluginpermission">PixlivePluginPermission</a></code> |

**Returns:** <code>Promise&lt;<a href="#permissionstatus">PermissionStatus</a>&gt;</code>

**Since:** 0.0.1

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


### synchronize(...)

```typescript
synchronize(options: SynchronizeOptions) => Promise<void>
```

Sync content from PixLive Maker filtered by tags.

Only available on Android and iOS.

| Param         | Type                                                              |
| ------------- | ----------------------------------------------------------------- |
| **`options`** | <code><a href="#synchronizeoptions">SynchronizeOptions</a></code> |

**Since:** 0.0.1

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


### synchronizeWithToursAndContexts(...)

```typescript
synchronizeWithToursAndContexts(options: SynchronizeWithToursAndContextsOptions) => Promise<void>
```

Sync content filtered by tags, tour IDs, and context IDs.

Only available on Android and iOS.

| Param         | Type                                                                                                      |
| ------------- | --------------------------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#synchronizewithtoursandcontextsoptions">SynchronizeWithToursAndContextsOptions</a></code> |

**Since:** 0.0.1

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


### updateTagMapping(...)

```typescript
updateTagMapping(options: UpdateTagMappingOptions) => Promise<void>
```

Update tag-to-context mappings for language filtering.

Only available on Android and iOS.

| Param         | Type                                                                        |
| ------------- | --------------------------------------------------------------------------- |
| **`options`** | <code><a href="#updatetagmappingoptions">UpdateTagMappingOptions</a></code> |

**Since:** 0.0.1

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


### enableContextsWithTags(...)

```typescript
enableContextsWithTags(options: EnableContextsWithTagsOptions) => Promise<void>
```

Enable only contexts matching specific tags.

Only available on Android and iOS.

| Param         | Type                                                                                    |
| ------------- | --------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#enablecontextswithtagsoptions">EnableContextsWithTagsOptions</a></code> |

**Since:** 0.0.1

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


### getContexts()

```typescript
getContexts() => Promise<GetContextsResult>
```

Get all synchronized contexts.

Only available on Android and iOS.

**Returns:** <code>Promise&lt;<a href="#getcontextsresult">GetContextsResult</a>&gt;</code>

**Since:** 0.0.1

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


### getContext(...)

```typescript
getContext(options: GetContextOptions) => Promise<GetContextResult>
```

Get a single context by ID.

Only available on Android and iOS.

| Param         | Type                                                            |
| ------------- | --------------------------------------------------------------- |
| **`options`** | <code><a href="#getcontextoptions">GetContextOptions</a></code> |

**Returns:** <code>Promise&lt;<a href="#getcontextresult">GetContextResult</a>&gt;</code>

**Since:** 0.0.1

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


### activateContext(...)

```typescript
activateContext(options: ActivateContextOptions) => Promise<void>
```

Programmatically trigger/activate a context.

Only available on Android and iOS.

| Param         | Type                                                                      |
| ------------- | ------------------------------------------------------------------------- |
| **`options`** | <code><a href="#activatecontextoptions">ActivateContextOptions</a></code> |

**Since:** 0.0.1

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


### stopContext()

```typescript
stopContext() => Promise<void>
```

Stop the currently playing/active context.

Only available on Android and iOS.

**Since:** 0.0.1

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


### getNearbyGPSPoints(...)

```typescript
getNearbyGPSPoints(options: GetNearbyGPSPointsOptions) => Promise<GetNearbyGPSPointsResult>
```

Get GPS points near a given location, sorted by distance.

Only available on Android and iOS.

| Param         | Type                                                                            |
| ------------- | ------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#getnearbygpspointsoptions">GetNearbyGPSPointsOptions</a></code> |

**Returns:** <code>Promise&lt;<a href="#getnearbygpspointsresult">GetNearbyGPSPointsResult</a>&gt;</code>

**Since:** 0.0.1

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


### getGPSPointsInBoundingBox(...)

```typescript
getGPSPointsInBoundingBox(options: GetGPSPointsInBoundingBoxOptions) => Promise<GetGPSPointsInBoundingBoxResult>
```

Get all GPS points within a geographic bounding box.

Only available on Android and iOS.

| Param         | Type                                                                                          |
| ------------- | --------------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#getgpspointsinboundingboxoptions">GetGPSPointsInBoundingBoxOptions</a></code> |

**Returns:** <code>Promise&lt;<a href="#getgpspointsinboundingboxresult">GetGPSPointsInBoundingBoxResult</a>&gt;</code>

**Since:** 0.0.1

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


### getNearbyBeacons()

```typescript
getNearbyBeacons() => Promise<GetNearbyBeaconsResult>
```

Get contexts associated with nearby detected beacons.

Only available on Android and iOS.

**Returns:** <code>Promise&lt;<a href="#getnearbybeaconsresult">GetNearbyBeaconsResult</a>&gt;</code>

**Since:** 0.0.1

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


### startNearbyGPSDetection()

```typescript
startNearbyGPSDetection() => Promise<void>
```

Start background GPS proximity detection.

Only available on Android and iOS.

**Since:** 0.0.1

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


### stopNearbyGPSDetection()

```typescript
stopNearbyGPSDetection() => Promise<void>
```

Stop background GPS proximity detection.

Only available on Android and iOS.

**Since:** 0.0.1

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


### startGPSNotifications()

```typescript
startGPSNotifications() => Promise<void>
```

Enable GPS-triggered local notifications.

Only available on Android and iOS.

**Since:** 0.0.1

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


### stopGPSNotifications()

```typescript
stopGPSNotifications() => Promise<void>
```

Disable GPS-triggered local notifications.

Only available on Android and iOS.

**Since:** 0.0.1

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


### setNotificationsSupport(...)

```typescript
setNotificationsSupport(options: SetNotificationsSupportOptions) => Promise<void>
```

Enable or disable notification support.

Only available on Android and iOS.

| Param         | Type                                                                                      |
| ------------- | ----------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#setnotificationssupportoptions">SetNotificationsSupportOptions</a></code> |

**Since:** 0.0.1

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


### setInterfaceLanguage(...)

```typescript
setInterfaceLanguage(options: SetInterfaceLanguageOptions) => Promise<void>
```

Set the language for SDK UI elements.

Only available on Android and iOS.

| Param         | Type                                                                                |
| ------------- | ----------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#setinterfacelanguageoptions">SetInterfaceLanguageOptions</a></code> |

**Since:** 0.0.1

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


### createARView(...)

```typescript
createARView(options: CreateARViewOptions) => Promise<void>
```

Create the native AR camera view at specified screen coordinates.

Only available on Android and iOS.

| Param         | Type                                                                |
| ------------- | ------------------------------------------------------------------- |
| **`options`** | <code><a href="#createarviewoptions">CreateARViewOptions</a></code> |

**Since:** 0.0.1

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


### destroyARView()

```typescript
destroyARView() => Promise<void>
```

Destroy the AR camera view.

Only available on Android and iOS.

**Since:** 0.0.1

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


### resizeARView(...)

```typescript
resizeARView(options: ResizeARViewOptions) => Promise<void>
```

Resize the AR view.

Only available on Android and iOS.

| Param         | Type                                                                |
| ------------- | ------------------------------------------------------------------- |
| **`options`** | <code><a href="#resizearviewoptions">ResizeARViewOptions</a></code> |

**Since:** 0.0.1

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


### setARViewTouchEnabled(...)

```typescript
setARViewTouchEnabled(options: SetARViewTouchEnabledOptions) => Promise<void>
```

Enable or disable touch event interception on the AR view.

Only available on Android and iOS.

| Param         | Type                                                                                  |
| ------------- | ------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#setarviewtouchenabledoptions">SetARViewTouchEnabledOptions</a></code> |

**Since:** 0.0.1

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


### setARViewTouchHole(...)

```typescript
setARViewTouchHole(options: SetARViewTouchHoleOptions) => Promise<void>
```

Define a rectangular region where touches pass through the AR view to the web layer.

Only available on Android and iOS.

| Param         | Type                                                                            |
| ------------- | ------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#setarviewtouchholeoptions">SetARViewTouchHoleOptions</a></code> |

**Since:** 0.0.1

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


### getVersion()

```typescript
getVersion() => Promise<GetVersionResult>
```

Get the version of the sdk.

**Returns:** <code>Promise&lt;<a href="#getversionresult">GetVersionResult</a>&gt;</code>

**Since:** 0.0.1

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


### addListener('codeRecognize', ...)

```typescript
addListener(eventName: 'codeRecognize', listenerFunc: (event: CodeRecognizeEvent) => void) => Promise<PluginListenerHandle>
```

Called when a QR code or barcode is scanned by the AR camera.

| Param              | Type                                                                                  |
| ------------------ | ------------------------------------------------------------------------------------- |
| **`eventName`**    | <code>'codeRecognize'</code>                                                          |
| **`listenerFunc`** | <code>(event: <a href="#coderecognizeevent">CodeRecognizeEvent</a>) =&gt; void</code> |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>

**Since:** 0.0.1

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


### addListener('enterContext', ...)

```typescript
addListener(eventName: 'enterContext', listenerFunc: (event: EnterContextEvent) => void) => Promise<PluginListenerHandle>
```

Called when an AR context is detected/entered.

| Param              | Type                                                                                |
| ------------------ | ----------------------------------------------------------------------------------- |
| **`eventName`**    | <code>'enterContext'</code>                                                         |
| **`listenerFunc`** | <code>(event: <a href="#entercontextevent">EnterContextEvent</a>) =&gt; void</code> |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>

**Since:** 0.0.1

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


### addListener('exitContext', ...)

```typescript
addListener(eventName: 'exitContext', listenerFunc: (event: ExitContextEvent) => void) => Promise<PluginListenerHandle>
```

Called when an AR context is lost/exited.

| Param              | Type                                                                              |
| ------------------ | --------------------------------------------------------------------------------- |
| **`eventName`**    | <code>'exitContext'</code>                                                        |
| **`listenerFunc`** | <code>(event: <a href="#exitcontextevent">ExitContextEvent</a>) =&gt; void</code> |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>

**Since:** 0.0.1

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


### addListener('presentAnnotations', ...)

```typescript
addListener(eventName: 'presentAnnotations', listenerFunc: () => void) => Promise<PluginListenerHandle>
```

Called when AR content/annotations become visible on screen.

| Param              | Type                              |
| ------------------ | --------------------------------- |
| **`eventName`**    | <code>'presentAnnotations'</code> |
| **`listenerFunc`** | <code>() =&gt; void</code>        |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>

**Since:** 0.0.1

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


### addListener('hideAnnotations', ...)

```typescript
addListener(eventName: 'hideAnnotations', listenerFunc: () => void) => Promise<PluginListenerHandle>
```

Called when AR content/annotations are hidden.

| Param              | Type                           |
| ------------------ | ------------------------------ |
| **`eventName`**    | <code>'hideAnnotations'</code> |
| **`listenerFunc`** | <code>() =&gt; void</code>     |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>

**Since:** 0.0.1

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


### addListener('eventFromContent', ...)

```typescript
addListener(eventName: 'eventFromContent', listenerFunc: (event: EventFromContentEvent) => void) => Promise<PluginListenerHandle>
```

Called when AR content dispatches a custom event.

| Param              | Type                                                                                        |
| ------------------ | ------------------------------------------------------------------------------------------- |
| **`eventName`**    | <code>'eventFromContent'</code>                                                             |
| **`listenerFunc`** | <code>(event: <a href="#eventfromcontentevent">EventFromContentEvent</a>) =&gt; void</code> |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>

**Since:** 0.0.1

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


### addListener('syncProgress', ...)

```typescript
addListener(eventName: 'syncProgress', listenerFunc: (event: SyncProgressEvent) => void) => Promise<PluginListenerHandle>
```

Called during synchronization with progress updates.

| Param              | Type                                                                                |
| ------------------ | ----------------------------------------------------------------------------------- |
| **`eventName`**    | <code>'syncProgress'</code>                                                         |
| **`listenerFunc`** | <code>(event: <a href="#syncprogressevent">SyncProgressEvent</a>) =&gt; void</code> |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>

**Since:** 0.0.1

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


### addListener('requireSync', ...)

```typescript
addListener(eventName: 'requireSync', listenerFunc: (event: RequireSyncEvent) => void) => Promise<PluginListenerHandle>
```

Called when the SDK requires synchronization with specific tags.

| Param              | Type                                                                              |
| ------------------ | --------------------------------------------------------------------------------- |
| **`eventName`**    | <code>'requireSync'</code>                                                        |
| **`listenerFunc`** | <code>(event: <a href="#requiresyncevent">RequireSyncEvent</a>) =&gt; void</code> |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>

**Since:** 0.0.1

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


### removeAllListeners()

```typescript
removeAllListeners() => Promise<void>
```

Remove all listeners for this plugin.

**Since:** 0.0.1

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


### Interfaces


#### PermissionStatus

| Prop                   | Type                                                        | Description                                                                      | Since |
| ---------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------- | ----- |
| **`bluetooth`**        | <code><a href="#permissionstate">PermissionState</a></code> | Permission state of the Bluetooth permission. Only available on iOS.             | 0.0.1 |
| **`bluetoothConnect`** | <code><a href="#permissionstate">PermissionState</a></code> | Permission state of the Bluetooth Connect permission. Only available on Android. | 0.0.1 |
| **`bluetoothScan`**    | <code><a href="#permissionstate">PermissionState</a></code> | Permission state of the Bluetooth Scan permission. Only available on Android.    | 0.0.1 |
| **`camera`**           | <code><a href="#permissionstate">PermissionState</a></code> | Permission state of the Camera permission.                                       | 0.0.1 |
| **`location`**         | <code><a href="#permissionstate">PermissionState</a></code> | Permission state of the Location permission. Only available on Android and iOS.  | 0.0.1 |
| **`notifications`**    | <code><a href="#permissionstate">PermissionState</a></code> | Permission state of the Notifications permission.                                | 0.0.1 |


#### PixlivePluginPermission

| Prop              | Type                                 | Description                 | Since |
| ----------------- | ------------------------------------ | --------------------------- | ----- |
| **`permissions`** | <code>PixlivePermissionType[]</code> | The permissions to request. | 0.0.1 |


#### SynchronizeOptions

| Prop       | Type                    | Description                    | Since |
| ---------- | ----------------------- | ------------------------------ | ----- |
| **`tags`** | <code>string[][]</code> | The tags to filter content by. | 0.0.1 |


#### SynchronizeWithToursAndContextsOptions

| Prop             | Type                    | Description                    | Since |
| ---------------- | ----------------------- | ------------------------------ | ----- |
| **`tags`**       | <code>string[][]</code> | The tags to filter content by. | 0.0.1 |
| **`tourIds`**    | <code>number[]</code>   | The tour IDs to sync.          | 0.0.1 |
| **`contextIds`** | <code>string[]</code>   | The context IDs to sync.       | 0.0.1 |


#### UpdateTagMappingOptions

| Prop       | Type                  | Description      | Since |
| ---------- | --------------------- | ---------------- | ----- |
| **`tags`** | <code>string[]</code> | The tags to map. | 0.0.1 |


#### EnableContextsWithTagsOptions

| Prop       | Type                  | Description                      | Since |
| ---------- | --------------------- | -------------------------------- | ----- |
| **`tags`** | <code>string[]</code> | The tags to enable contexts for. | 0.0.1 |


#### GetContextsResult

| Prop           | Type                   | Description                        | Since |
| -------------- | ---------------------- | ---------------------------------- | ----- |
| **`contexts`** | <code>Context[]</code> | The list of synchronized contexts. | 0.0.1 |


#### Context

| Prop                      | Type                        | Description                              | Since |
| ------------------------- | --------------------------- | ---------------------------------------- | ----- |
| **`contextId`**           | <code>string</code>         | The unique identifier of the context.    | 0.0.1 |
| **`name`**                | <code>string</code>         | The name of the context.                 | 0.0.1 |
| **`description`**         | <code>string \| null</code> | The description of the context.          | 0.0.1 |
| **`lastUpdate`**          | <code>string</code>         | The last update timestamp.               | 0.0.1 |
| **`imageThumbnailURL`**   | <code>string \| null</code> | The URL of the thumbnail image.          | 0.0.1 |
| **`imageHiResURL`**       | <code>string \| null</code> | The URL of the high-resolution image.    | 0.0.1 |
| **`notificationTitle`**   | <code>string \| null</code> | The notification title.                  | 0.0.1 |
| **`notificationMessage`** | <code>string \| null</code> | The notification message.                | 0.0.1 |
| **`tags`**                | <code>string[]</code>       | The tags associated with the context.    | 0.0.1 |
| **`languages`**           | <code>string[]</code>       | The languages provided for this context. | 0.1.3 |


#### GetContextResult

| Prop          | Type                                        | Description  | Since |
| ------------- | ------------------------------------------- | ------------ | ----- |
| **`context`** | <code><a href="#context">Context</a></code> | The context. | 0.0.1 |


#### GetContextOptions

| Prop            | Type                | Description                        | Since |
| --------------- | ------------------- | ---------------------------------- | ----- |
| **`contextId`** | <code>string</code> | The ID of the context to retrieve. | 0.0.1 |


#### ActivateContextOptions

| Prop            | Type                | Description                        | Since |
| --------------- | ------------------- | ---------------------------------- | ----- |
| **`contextId`** | <code>string</code> | The ID of the context to activate. | 0.0.1 |


#### GetNearbyGPSPointsResult

| Prop         | Type                    | Description                               | Since |
| ------------ | ----------------------- | ----------------------------------------- | ----- |
| **`points`** | <code>GPSPoint[]</code> | The nearby GPS points sorted by distance. | 0.0.1 |


#### GPSPoint

| Prop                              | Type                        | Description                                       | Since |
| --------------------------------- | --------------------------- | ------------------------------------------------- | ----- |
| **`contextId`**                   | <code>string</code>         | The ID of the associated context.                 | 0.0.1 |
| **`category`**                    | <code>string</code>         | The category of the GPS point.                    | 0.0.1 |
| **`label`**                       | <code>string</code>         | The label of the GPS point.                       | 0.0.1 |
| **`latitude`**                    | <code>number</code>         | The latitude of the GPS point.                    | 0.0.1 |
| **`longitude`**                   | <code>number</code>         | The longitude of the GPS point.                   | 0.0.1 |
| **`detectionRadius`**             | <code>number \| null</code> | The detection radius in meters.                   | 0.0.1 |
| **`distanceFromCurrentPosition`** | <code>number</code>         | The distance from the current position in meters. | 0.0.1 |


#### GetNearbyGPSPointsOptions

| Prop            | Type                | Description                              | Since |
| --------------- | ------------------- | ---------------------------------------- | ----- |
| **`latitude`**  | <code>number</code> | The latitude of the reference location.  | 0.0.1 |
| **`longitude`** | <code>number</code> | The longitude of the reference location. | 0.0.1 |


#### GetGPSPointsInBoundingBoxResult

| Prop         | Type                    | Description                             | Since |
| ------------ | ----------------------- | --------------------------------------- | ----- |
| **`points`** | <code>GPSPoint[]</code> | The GPS points within the bounding box. | 0.0.1 |


#### GetGPSPointsInBoundingBoxOptions

| Prop               | Type                | Description                                | Since |
| ------------------ | ------------------- | ------------------------------------------ | ----- |
| **`minLatitude`**  | <code>number</code> | The minimum latitude of the bounding box.  | 0.0.1 |
| **`minLongitude`** | <code>number</code> | The minimum longitude of the bounding box. | 0.0.1 |
| **`maxLatitude`**  | <code>number</code> | The maximum latitude of the bounding box.  | 0.0.1 |
| **`maxLongitude`** | <code>number</code> | The maximum longitude of the bounding box. | 0.0.1 |


#### GetNearbyBeaconsResult

| Prop           | Type                   | Description                                  | Since |
| -------------- | ---------------------- | -------------------------------------------- | ----- |
| **`contexts`** | <code>Context[]</code> | The contexts associated with nearby beacons. | 0.0.1 |


#### SetNotificationsSupportOptions

| Prop          | Type                 | Description                                      | Since |
| ------------- | -------------------- | ------------------------------------------------ | ----- |
| **`enabled`** | <code>boolean</code> | Whether notifications support should be enabled. | 0.0.1 |


#### SetInterfaceLanguageOptions

| Prop           | Type                | Description               | Since |
| -------------- | ------------------- | ------------------------- | ----- |
| **`language`** | <code>string</code> | The language code to set. | 0.0.1 |


#### CreateARViewOptions

| Prop         | Type                | Description                    | Since |
| ------------ | ------------------- | ------------------------------ | ----- |
| **`x`**      | <code>number</code> | The x position of the AR view. | 0.0.1 |
| **`y`**      | <code>number</code> | The y position of the AR view. | 0.0.1 |
| **`width`**  | <code>number</code> | The width of the AR view.      | 0.0.1 |
| **`height`** | <code>number</code> | The height of the AR view.     | 0.0.1 |


#### ResizeARViewOptions

| Prop         | Type                | Description                        | Since |
| ------------ | ------------------- | ---------------------------------- | ----- |
| **`x`**      | <code>number</code> | The new x position of the AR view. | 0.0.1 |
| **`y`**      | <code>number</code> | The new y position of the AR view. | 0.0.1 |
| **`width`**  | <code>number</code> | The new width of the AR view.      | 0.0.1 |
| **`height`** | <code>number</code> | The new height of the AR view.     | 0.0.1 |


#### SetARViewTouchEnabledOptions

| Prop          | Type                 | Description                                                | Since |
| ------------- | -------------------- | ---------------------------------------------------------- | ----- |
| **`enabled`** | <code>boolean</code> | Whether touch events should be intercepted by the AR view. | 0.0.1 |


#### SetARViewTouchHoleOptions

| Prop         | Type                | Description                                     | Since |
| ------------ | ------------------- | ----------------------------------------------- | ----- |
| **`top`**    | <code>number</code> | The top coordinate of the touch hole region.    | 0.0.1 |
| **`bottom`** | <code>number</code> | The bottom coordinate of the touch hole region. | 0.0.1 |
| **`left`**   | <code>number</code> | The left coordinate of the touch hole region.   | 0.0.1 |
| **`right`**  | <code>number</code> | The right coordinate of the touch hole region.  | 0.0.1 |


#### GetVersionResult

| Prop          | Type                | Description             | Since |
| ------------- | ------------------- | ----------------------- | ----- |
| **`version`** | <code>string</code> | The version of the sdk. | 0.0.1 |


#### PluginListenerHandle

| Prop         | Type                                      |
| ------------ | ----------------------------------------- |
| **`remove`** | <code>() =&gt; Promise&lt;void&gt;</code> |


#### CodeRecognizeEvent

| Prop       | Type                | Description                   | Since |
| ---------- | ------------------- | ----------------------------- | ----- |
| **`code`** | <code>string</code> | The scanned code value.       | 0.0.1 |
| **`type`** | <code>string</code> | The type of the scanned code. | 0.0.1 |


#### EnterContextEvent

| Prop            | Type                | Description                    | Since |
| --------------- | ------------------- | ------------------------------ | ----- |
| **`contextId`** | <code>string</code> | The ID of the entered context. | 0.0.1 |


#### ExitContextEvent

| Prop            | Type                | Description                   | Since |
| --------------- | ------------------- | ----------------------------- | ----- |
| **`contextId`** | <code>string</code> | The ID of the exited context. | 0.0.1 |


#### EventFromContentEvent

| Prop         | Type                | Description                         | Since |
| ------------ | ------------------- | ----------------------------------- | ----- |
| **`name`**   | <code>string</code> | The name of the custom event.       | 0.0.1 |
| **`params`** | <code>string</code> | The parameters of the custom event. | 0.0.1 |


#### SyncProgressEvent

| Prop           | Type                | Description                                  | Since |
| -------------- | ------------------- | -------------------------------------------- | ----- |
| **`progress`** | <code>number</code> | The sync progress value between 0.0 and 1.0. | 0.0.1 |


#### RequireSyncEvent

| Prop       | Type                  | Description                            | Since |
| ---------- | --------------------- | -------------------------------------- | ----- |
| **`tags`** | <code>string[]</code> | The tags that require synchronization. | 0.0.1 |


### Type Aliases


#### PermissionState

<code>'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'</code>


#### PixlivePermissionType

<code>'bluetooth' | 'bluetoothConnect' | 'bluetoothScan' | 'camera' | 'location' | 'notifications'</code>

</docgen-api>

## FAQ

### Which method do I have to call first?

The `initialize()` method must be called before any other method of the plugin. It initializes the PixLive SDK using the license key from your Capacitor configuration file (see [Configuration](#configuration)).

### How do I set up the PixLive SDK in my project?

The PixLive SDK itself is not bundled with the plugin. On Android, copy the `vdarsdk-release.aar` file into your app's `android/app/libs/` directory. On iOS, copy `VDARSDK.xcframework` into `ios/App/Frameworks/` in your Capacitor project. See the [Installation](#installation) section for details.

### Does this plugin support Swift Package Manager?

No, this plugin only supports CocoaPods as the iOS dependency manager. Swift Package Manager is not supported.

### Does this plugin work on the Web?

No, the plugin methods are only available on Android and iOS since they rely on the native PixLive SDK.

### Which permissions does the plugin handle?

The plugin can check and request the camera, location, notifications, and Bluetooth permissions via the `checkPermissions()` and `requestPermissions(...)` methods. The Bluetooth permission is exposed as `bluetooth` on iOS and as `bluetoothConnect` and `bluetoothScan` on Android.

### Can I use this plugin with Ionic, React, Vue or Angular?

Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.

## Related Plugins

- [Barcode Scanning](https://capawesome.io/docs/sdks/capacitor/mlkit/barcode-scanning/): Scan barcodes and QR codes with ML Kit.
- [Bluetooth Low Energy](https://capawesome.io/docs/sdks/capacitor/bluetooth-low-energy/): Communicate with Bluetooth Low Energy devices such as beacons.
- [Geocoder](https://capawesome.io/docs/sdks/capacitor/geocoder/): Handle geocoding and reverse geocoding.
