---
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.
title: Capacitor PixLive Plugin for Android & iOS - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/pixlive.png
---

<!doctype html> 

[Skip to content ](#capacitor-pixlive-plugin) 

[🖥️ Introducing the **Capacitor Electron Platform** — build desktop apps for macOS, Windows, and Linux. Free & open source. ](/blog/announcing-the-capacitor-electron-platform/) 

* [ SDKs ](/docs/sdks/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ Home Indicator ](/docs/sdks/capacitor/home-indicator/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Intercom ](/docs/sdks/capacitor/intercom/)
* [ Intune ](/docs/sdks/capacitor/intune/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Light Sensor ](/docs/sdks/capacitor/light-sensor/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Localization ](/docs/sdks/capacitor/localization/)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ Network ](/docs/sdks/capacitor/network/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Permissions ](/docs/sdks/capacitor/permissions/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ Photo Manipulator ](/docs/sdks/capacitor/photo-manipulator/)
* PixLive [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ iOS ](#ios)
* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Proximity Sensor ](/docs/sdks/capacitor/proximity-sensor/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ System WebView ](/docs/sdks/capacitor/system-webview/)
* [ Tauri ](/docs/sdks/capacitor/tauri/)
* [ Text Interaction ](/docs/sdks/capacitor/text-interaction/)
* [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ YouTube Player ](/docs/sdks/capacitor/youtube-player/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ iOS ](#ios)
* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)

# Capacitor PixLive Plugin[¶](#capacitor-pixlive-plugin "Permanent link")

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

## Use Cases[¶](#use-cases "Permanent link")

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[¶](#installation "Permanent link")

`[](#%5F%5Fcodelineno-0-1)npm install @capawesome/capacitor-pixlive
[](#%5F%5Fcodelineno-0-2)npx cap sync
`

### Android[¶](#android "Permanent link")

#### SDK Setup[¶](#sdk-setup "Permanent link")

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

### iOS[¶](#ios "Permanent link")

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

#### SDK Setup[¶](#sdk-setup%5F1 "Permanent link")

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

## Configuration[¶](#configuration "Permanent link")

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

`[](#%5F%5Fcodelineno-1-1)const config: CapacitorConfig = {
[](#%5F%5Fcodelineno-1-2)  plugins: {
[](#%5F%5Fcodelineno-1-3)    Pixlive: {
[](#%5F%5Fcodelineno-1-4)      licenseKey: 'YOUR_LICENSE_KEY',
[](#%5F%5Fcodelineno-1-5)      apiUrl: 'https://ar.vidinoti.com/api/api.php', // optional
[](#%5F%5Fcodelineno-1-6)      sdkUrl: 'https://sdk.vidinoti.com', // optional
[](#%5F%5Fcodelineno-1-7)    },
[](#%5F%5Fcodelineno-1-8)  },
[](#%5F%5Fcodelineno-1-9)};
`

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

## Usage[¶](#usage "Permanent link")

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

### Synchronize content from PixLive Maker[¶](#synchronize-content-from-pixlive-maker "Permanent link")

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

`[](#%5F%5Fcodelineno-2-1)import { Pixlive } from '@capawesome/capacitor-pixlive';
[](#%5F%5Fcodelineno-2-2)
[](#%5F%5Fcodelineno-2-3)const synchronize = async () => {
[](#%5F%5Fcodelineno-2-4)  await Pixlive.synchronize({ tags: [['my-tag']] });
[](#%5F%5Fcodelineno-2-5)};
`

### Display the AR view[¶](#display-the-ar-view "Permanent link")

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

`[](#%5F%5Fcodelineno-3-1)import { Pixlive } from '@capawesome/capacitor-pixlive';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const createARView = async () => {
[](#%5F%5Fcodelineno-3-4)  await Pixlive.createARView({ x: 0, y: 0, width: 300, height: 400 });
[](#%5F%5Fcodelineno-3-5)};
`

## API[¶](#api "Permanent link")

* [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)

### initialize()[¶](#initialize "Permanent link")

`[](#%5F%5Fcodelineno-4-1)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()[¶](#checkpermissions "Permanent link")

`[](#%5F%5Fcodelineno-5-1)checkPermissions() => Promise<PermissionStatus>
`

Check the status of permissions.

**Returns:** `Promise<[PermissionStatus](#permissionstatus)>`

**Since:** 0.0.1

---

### requestPermissions(...)[¶](#requestpermissions "Permanent link")

`[](#%5F%5Fcodelineno-6-1)requestPermissions(options?: PixlivePluginPermission | undefined) => Promise<PermissionStatus>
`

Request permissions.

| Param       | Type                                                |
| ----------- | --------------------------------------------------- |
| **options** | [PixlivePluginPermission](#pixlivepluginpermission) |

**Returns:** `Promise<[PermissionStatus](#permissionstatus)>`

**Since:** 0.0.1

---

### synchronize(...)[¶](#synchronize "Permanent link")

`[](#%5F%5Fcodelineno-7-1)synchronize(options: SynchronizeOptions) => Promise<void>
`

Sync content from PixLive Maker filtered by tags.

Only available on Android and iOS.

| Param       | Type                                      |
| ----------- | ----------------------------------------- |
| **options** | [SynchronizeOptions](#synchronizeoptions) |

**Since:** 0.0.1

---

### synchronizeWithToursAndContexts(...)[¶](#synchronizewithtoursandcontexts "Permanent link")

`[](#%5F%5Fcodelineno-8-1)synchronizeWithToursAndContexts(options: SynchronizeWithToursAndContextsOptions) => Promise<void>
`

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

Only available on Android and iOS.

| Param       | Type                                                                              |
| ----------- | --------------------------------------------------------------------------------- |
| **options** | [SynchronizeWithToursAndContextsOptions](#synchronizewithtoursandcontextsoptions) |

**Since:** 0.0.1

---

### updateTagMapping(...)[¶](#updatetagmapping "Permanent link")

`[](#%5F%5Fcodelineno-9-1)updateTagMapping(options: UpdateTagMappingOptions) => Promise<void>
`

Update tag-to-context mappings for language filtering.

Only available on Android and iOS.

| Param       | Type                                                |
| ----------- | --------------------------------------------------- |
| **options** | [UpdateTagMappingOptions](#updatetagmappingoptions) |

**Since:** 0.0.1

---

### enableContextsWithTags(...)[¶](#enablecontextswithtags "Permanent link")

`[](#%5F%5Fcodelineno-10-1)enableContextsWithTags(options: EnableContextsWithTagsOptions) => Promise<void>
`

Enable only contexts matching specific tags.

Only available on Android and iOS.

| Param       | Type                                                            |
| ----------- | --------------------------------------------------------------- |
| **options** | [EnableContextsWithTagsOptions](#enablecontextswithtagsoptions) |

**Since:** 0.0.1

---

### getContexts()[¶](#getcontexts "Permanent link")

`[](#%5F%5Fcodelineno-11-1)getContexts() => Promise<GetContextsResult>
`

Get all synchronized contexts.

Only available on Android and iOS.

**Returns:** `Promise<[GetContextsResult](#getcontextsresult)>`

**Since:** 0.0.1

---

### getContext(...)[¶](#getcontext "Permanent link")

`[](#%5F%5Fcodelineno-12-1)getContext(options: GetContextOptions) => Promise<GetContextResult>
`

Get a single context by ID.

Only available on Android and iOS.

| Param       | Type                                    |
| ----------- | --------------------------------------- |
| **options** | [GetContextOptions](#getcontextoptions) |

**Returns:** `Promise<[GetContextResult](#getcontextresult)>`

**Since:** 0.0.1

---

### activateContext(...)[¶](#activatecontext "Permanent link")

`[](#%5F%5Fcodelineno-13-1)activateContext(options: ActivateContextOptions) => Promise<void>
`

Programmatically trigger/activate a context.

Only available on Android and iOS.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [ActivateContextOptions](#activatecontextoptions) |

**Since:** 0.0.1

---

### stopContext()[¶](#stopcontext "Permanent link")

`[](#%5F%5Fcodelineno-14-1)stopContext() => Promise<void>
`

Stop the currently playing/active context.

Only available on Android and iOS.

**Since:** 0.0.1

---

### getNearbyGPSPoints(...)[¶](#getnearbygpspoints "Permanent link")

`[](#%5F%5Fcodelineno-15-1)getNearbyGPSPoints(options: GetNearbyGPSPointsOptions) => Promise<GetNearbyGPSPointsResult>
`

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

Only available on Android and iOS.

| Param       | Type                                                    |
| ----------- | ------------------------------------------------------- |
| **options** | [GetNearbyGPSPointsOptions](#getnearbygpspointsoptions) |

**Returns:** `Promise<[GetNearbyGPSPointsResult](#getnearbygpspointsresult)>`

**Since:** 0.0.1

---

### getGPSPointsInBoundingBox(...)[¶](#getgpspointsinboundingbox "Permanent link")

`[](#%5F%5Fcodelineno-16-1)getGPSPointsInBoundingBox(options: GetGPSPointsInBoundingBoxOptions) => Promise<GetGPSPointsInBoundingBoxResult>
`

Get all GPS points within a geographic bounding box.

Only available on Android and iOS.

| Param       | Type                                                                  |
| ----------- | --------------------------------------------------------------------- |
| **options** | [GetGPSPointsInBoundingBoxOptions](#getgpspointsinboundingboxoptions) |

**Returns:** `Promise<[GetGPSPointsInBoundingBoxResult](#getgpspointsinboundingboxresult)>`

**Since:** 0.0.1

---

### getNearbyBeacons()[¶](#getnearbybeacons "Permanent link")

`[](#%5F%5Fcodelineno-17-1)getNearbyBeacons() => Promise<GetNearbyBeaconsResult>
`

Get contexts associated with nearby detected beacons.

Only available on Android and iOS.

**Returns:** `Promise<[GetNearbyBeaconsResult](#getnearbybeaconsresult)>`

**Since:** 0.0.1

---

### startNearbyGPSDetection()[¶](#startnearbygpsdetection "Permanent link")

`[](#%5F%5Fcodelineno-18-1)startNearbyGPSDetection() => Promise<void>
`

Start background GPS proximity detection.

Only available on Android and iOS.

**Since:** 0.0.1

---

### stopNearbyGPSDetection()[¶](#stopnearbygpsdetection "Permanent link")

`[](#%5F%5Fcodelineno-19-1)stopNearbyGPSDetection() => Promise<void>
`

Stop background GPS proximity detection.

Only available on Android and iOS.

**Since:** 0.0.1

---

### startGPSNotifications()[¶](#startgpsnotifications "Permanent link")

`[](#%5F%5Fcodelineno-20-1)startGPSNotifications() => Promise<void>
`

Enable GPS-triggered local notifications.

Only available on Android and iOS.

**Since:** 0.0.1

---

### stopGPSNotifications()[¶](#stopgpsnotifications "Permanent link")

`[](#%5F%5Fcodelineno-21-1)stopGPSNotifications() => Promise<void>
`

Disable GPS-triggered local notifications.

Only available on Android and iOS.

**Since:** 0.0.1

---

### setNotificationsSupport(...)[¶](#setnotificationssupport "Permanent link")

`[](#%5F%5Fcodelineno-22-1)setNotificationsSupport(options: SetNotificationsSupportOptions) => Promise<void>
`

Enable or disable notification support.

Only available on Android and iOS.

| Param       | Type                                                              |
| ----------- | ----------------------------------------------------------------- |
| **options** | [SetNotificationsSupportOptions](#setnotificationssupportoptions) |

**Since:** 0.0.1

---

### setInterfaceLanguage(...)[¶](#setinterfacelanguage "Permanent link")

`[](#%5F%5Fcodelineno-23-1)setInterfaceLanguage(options: SetInterfaceLanguageOptions) => Promise<void>
`

Set the language for SDK UI elements.

Only available on Android and iOS.

| Param       | Type                                                        |
| ----------- | ----------------------------------------------------------- |
| **options** | [SetInterfaceLanguageOptions](#setinterfacelanguageoptions) |

**Since:** 0.0.1

---

### createARView(...)[¶](#createarview "Permanent link")

`[](#%5F%5Fcodelineno-24-1)createARView(options: CreateARViewOptions) => Promise<void>
`

Create the native AR camera view at specified screen coordinates.

Only available on Android and iOS.

| Param       | Type                                        |
| ----------- | ------------------------------------------- |
| **options** | [CreateARViewOptions](#createarviewoptions) |

**Since:** 0.0.1

---

### destroyARView()[¶](#destroyarview "Permanent link")

`[](#%5F%5Fcodelineno-25-1)destroyARView() => Promise<void>
`

Destroy the AR camera view.

Only available on Android and iOS.

**Since:** 0.0.1

---

### resizeARView(...)[¶](#resizearview "Permanent link")

`[](#%5F%5Fcodelineno-26-1)resizeARView(options: ResizeARViewOptions) => Promise<void>
`

Resize the AR view.

Only available on Android and iOS.

| Param       | Type                                        |
| ----------- | ------------------------------------------- |
| **options** | [ResizeARViewOptions](#resizearviewoptions) |

**Since:** 0.0.1

---

### setARViewTouchEnabled(...)[¶](#setarviewtouchenabled "Permanent link")

`[](#%5F%5Fcodelineno-27-1)setARViewTouchEnabled(options: SetARViewTouchEnabledOptions) => Promise<void>
`

Enable or disable touch event interception on the AR view.

Only available on Android and iOS.

| Param       | Type                                                          |
| ----------- | ------------------------------------------------------------- |
| **options** | [SetARViewTouchEnabledOptions](#setarviewtouchenabledoptions) |

**Since:** 0.0.1

---

### setARViewTouchHole(...)[¶](#setarviewtouchhole "Permanent link")

`[](#%5F%5Fcodelineno-28-1)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** | [SetARViewTouchHoleOptions](#setarviewtouchholeoptions) |

**Since:** 0.0.1

---

### getVersion()[¶](#getversion "Permanent link")

`[](#%5F%5Fcodelineno-29-1)getVersion() => Promise<GetVersionResult>
`

Get the version of the sdk.

**Returns:** `Promise<[GetVersionResult](#getversionresult)>`

**Since:** 0.0.1

---

### addListener('codeRecognize', ...)[¶](#addlistenercoderecognize "Permanent link")

`[](#%5F%5Fcodelineno-30-1)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**    | 'codeRecognize'                                            |
| **listenerFunc** | (event: [CodeRecognizeEvent](#coderecognizeevent)) => void |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('enterContext', ...)[¶](#addlistenerentercontext "Permanent link")

`[](#%5F%5Fcodelineno-31-1)addListener(eventName: 'enterContext', listenerFunc: (event: EnterContextEvent) => void) => Promise<PluginListenerHandle>
`

Called when an AR context is detected/entered.

| Param            | Type                                                     |
| ---------------- | -------------------------------------------------------- |
| **eventName**    | 'enterContext'                                           |
| **listenerFunc** | (event: [EnterContextEvent](#entercontextevent)) => void |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('exitContext', ...)[¶](#addlistenerexitcontext "Permanent link")

`[](#%5F%5Fcodelineno-32-1)addListener(eventName: 'exitContext', listenerFunc: (event: ExitContextEvent) => void) => Promise<PluginListenerHandle>
`

Called when an AR context is lost/exited.

| Param            | Type                                                   |
| ---------------- | ------------------------------------------------------ |
| **eventName**    | 'exitContext'                                          |
| **listenerFunc** | (event: [ExitContextEvent](#exitcontextevent)) => void |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('presentAnnotations', ...)[¶](#addlistenerpresentannotations "Permanent link")

`[](#%5F%5Fcodelineno-33-1)addListener(eventName: 'presentAnnotations', listenerFunc: () => void) => Promise<PluginListenerHandle>
`

Called when AR content/annotations become visible on screen.

| Param            | Type                 |
| ---------------- | -------------------- |
| **eventName**    | 'presentAnnotations' |
| **listenerFunc** | () => void           |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('hideAnnotations', ...)[¶](#addlistenerhideannotations "Permanent link")

`[](#%5F%5Fcodelineno-34-1)addListener(eventName: 'hideAnnotations', listenerFunc: () => void) => Promise<PluginListenerHandle>
`

Called when AR content/annotations are hidden.

| Param            | Type              |
| ---------------- | ----------------- |
| **eventName**    | 'hideAnnotations' |
| **listenerFunc** | () => void        |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('eventFromContent', ...)[¶](#addlistenereventfromcontent "Permanent link")

`[](#%5F%5Fcodelineno-35-1)addListener(eventName: 'eventFromContent', listenerFunc: (event: EventFromContentEvent) => void) => Promise<PluginListenerHandle>
`

Called when AR content dispatches a custom event.

| Param            | Type                                                             |
| ---------------- | ---------------------------------------------------------------- |
| **eventName**    | 'eventFromContent'                                               |
| **listenerFunc** | (event: [EventFromContentEvent](#eventfromcontentevent)) => void |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('syncProgress', ...)[¶](#addlistenersyncprogress "Permanent link")

`[](#%5F%5Fcodelineno-36-1)addListener(eventName: 'syncProgress', listenerFunc: (event: SyncProgressEvent) => void) => Promise<PluginListenerHandle>
`

Called during synchronization with progress updates.

| Param            | Type                                                     |
| ---------------- | -------------------------------------------------------- |
| **eventName**    | 'syncProgress'                                           |
| **listenerFunc** | (event: [SyncProgressEvent](#syncprogressevent)) => void |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('requireSync', ...)[¶](#addlistenerrequiresync "Permanent link")

`[](#%5F%5Fcodelineno-37-1)addListener(eventName: 'requireSync', listenerFunc: (event: RequireSyncEvent) => void) => Promise<PluginListenerHandle>
`

Called when the SDK requires synchronization with specific tags.

| Param            | Type                                                   |
| ---------------- | ------------------------------------------------------ |
| **eventName**    | 'requireSync'                                          |
| **listenerFunc** | (event: [RequireSyncEvent](#requiresyncevent)) => void |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### removeAllListeners()[¶](#removealllisteners "Permanent link")

`[](#%5F%5Fcodelineno-38-1)removeAllListeners() => Promise<void>
`

Remove all listeners for this plugin.

**Since:** 0.0.1

---

### Interfaces[¶](#interfaces "Permanent link")

#### PermissionStatus[¶](#permissionstatus "Permanent link")

| Prop                 | Type                                | Description                                                                      | Since |
| -------------------- | ----------------------------------- | -------------------------------------------------------------------------------- | ----- |
| **bluetooth**        | [PermissionState](#permissionstate) | Permission state of the Bluetooth permission. Only available on iOS.             | 0.0.1 |
| **bluetoothConnect** | [PermissionState](#permissionstate) | Permission state of the Bluetooth Connect permission. Only available on Android. | 0.0.1 |
| **bluetoothScan**    | [PermissionState](#permissionstate) | Permission state of the Bluetooth Scan permission. Only available on Android.    | 0.0.1 |
| **camera**           | [PermissionState](#permissionstate) | Permission state of the Camera permission.                                       | 0.0.1 |
| **location**         | [PermissionState](#permissionstate) | Permission state of the Location permission. Only available on Android and iOS.  | 0.0.1 |
| **notifications**    | [PermissionState](#permissionstate) | Permission state of the Notifications permission.                                | 0.0.1 |

#### PixlivePluginPermission[¶](#pixlivepluginpermission "Permanent link")

| Prop            | Type                      | Description                 | Since |
| --------------- | ------------------------- | --------------------------- | ----- |
| **permissions** | PixlivePermissionType\[\] | The permissions to request. | 0.0.1 |

#### SynchronizeOptions[¶](#synchronizeoptions "Permanent link")

| Prop     | Type           | Description                    | Since |
| -------- | -------------- | ------------------------------ | ----- |
| **tags** | string\[\]\[\] | The tags to filter content by. | 0.0.1 |

#### SynchronizeWithToursAndContextsOptions[¶](#synchronizewithtoursandcontextsoptions "Permanent link")

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

#### UpdateTagMappingOptions[¶](#updatetagmappingoptions "Permanent link")

| Prop     | Type       | Description      | Since |
| -------- | ---------- | ---------------- | ----- |
| **tags** | string\[\] | The tags to map. | 0.0.1 |

#### EnableContextsWithTagsOptions[¶](#enablecontextswithtagsoptions "Permanent link")

| Prop     | Type       | Description                      | Since |
| -------- | ---------- | -------------------------------- | ----- |
| **tags** | string\[\] | The tags to enable contexts for. | 0.0.1 |

#### GetContextsResult[¶](#getcontextsresult "Permanent link")

| Prop         | Type        | Description                        | Since |
| ------------ | ----------- | ---------------------------------- | ----- |
| **contexts** | Context\[\] | The list of synchronized contexts. | 0.0.1 |

#### Context[¶](#context "Permanent link")

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

#### GetContextResult[¶](#getcontextresult "Permanent link")

| Prop        | Type                | Description  | Since |
| ----------- | ------------------- | ------------ | ----- |
| **context** | [Context](#context) | The context. | 0.0.1 |

#### GetContextOptions[¶](#getcontextoptions "Permanent link")

| Prop          | Type   | Description                        | Since |
| ------------- | ------ | ---------------------------------- | ----- |
| **contextId** | string | The ID of the context to retrieve. | 0.0.1 |

#### ActivateContextOptions[¶](#activatecontextoptions "Permanent link")

| Prop          | Type   | Description                        | Since |
| ------------- | ------ | ---------------------------------- | ----- |
| **contextId** | string | The ID of the context to activate. | 0.0.1 |

#### GetNearbyGPSPointsResult[¶](#getnearbygpspointsresult "Permanent link")

| Prop       | Type         | Description                               | Since |
| ---------- | ------------ | ----------------------------------------- | ----- |
| **points** | GPSPoint\[\] | The nearby GPS points sorted by distance. | 0.0.1 |

#### GPSPoint[¶](#gpspoint "Permanent link")

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

#### GetNearbyGPSPointsOptions[¶](#getnearbygpspointsoptions "Permanent link")

| Prop          | Type   | Description                              | Since |
| ------------- | ------ | ---------------------------------------- | ----- |
| **latitude**  | number | The latitude of the reference location.  | 0.0.1 |
| **longitude** | number | The longitude of the reference location. | 0.0.1 |

#### GetGPSPointsInBoundingBoxResult[¶](#getgpspointsinboundingboxresult "Permanent link")

| Prop       | Type         | Description                             | Since |
| ---------- | ------------ | --------------------------------------- | ----- |
| **points** | GPSPoint\[\] | The GPS points within the bounding box. | 0.0.1 |

#### GetGPSPointsInBoundingBoxOptions[¶](#getgpspointsinboundingboxoptions "Permanent link")

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

#### GetNearbyBeaconsResult[¶](#getnearbybeaconsresult "Permanent link")

| Prop         | Type        | Description                                  | Since |
| ------------ | ----------- | -------------------------------------------- | ----- |
| **contexts** | Context\[\] | The contexts associated with nearby beacons. | 0.0.1 |

#### SetNotificationsSupportOptions[¶](#setnotificationssupportoptions "Permanent link")

| Prop        | Type    | Description                                      | Since |
| ----------- | ------- | ------------------------------------------------ | ----- |
| **enabled** | boolean | Whether notifications support should be enabled. | 0.0.1 |

#### SetInterfaceLanguageOptions[¶](#setinterfacelanguageoptions "Permanent link")

| Prop         | Type   | Description               | Since |
| ------------ | ------ | ------------------------- | ----- |
| **language** | string | The language code to set. | 0.0.1 |

#### CreateARViewOptions[¶](#createarviewoptions "Permanent link")

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

#### ResizeARViewOptions[¶](#resizearviewoptions "Permanent link")

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

#### SetARViewTouchEnabledOptions[¶](#setarviewtouchenabledoptions "Permanent link")

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

#### SetARViewTouchHoleOptions[¶](#setarviewtouchholeoptions "Permanent link")

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

#### GetVersionResult[¶](#getversionresult "Permanent link")

| Prop        | Type   | Description             | Since |
| ----------- | ------ | ----------------------- | ----- |
| **version** | string | The version of the sdk. | 0.0.1 |

#### PluginListenerHandle[¶](#pluginlistenerhandle "Permanent link")

| Prop       | Type                |
| ---------- | ------------------- |
| **remove** | () => Promise<void> |

#### CodeRecognizeEvent[¶](#coderecognizeevent "Permanent link")

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

#### EnterContextEvent[¶](#entercontextevent "Permanent link")

| Prop          | Type   | Description                    | Since |
| ------------- | ------ | ------------------------------ | ----- |
| **contextId** | string | The ID of the entered context. | 0.0.1 |

#### ExitContextEvent[¶](#exitcontextevent "Permanent link")

| Prop          | Type   | Description                   | Since |
| ------------- | ------ | ----------------------------- | ----- |
| **contextId** | string | The ID of the exited context. | 0.0.1 |

#### EventFromContentEvent[¶](#eventfromcontentevent "Permanent link")

| Prop       | Type   | Description                         | Since |
| ---------- | ------ | ----------------------------------- | ----- |
| **name**   | string | The name of the custom event.       | 0.0.1 |
| **params** | string | The parameters of the custom event. | 0.0.1 |

#### SyncProgressEvent[¶](#syncprogressevent "Permanent link")

| Prop         | Type   | Description                                  | Since |
| ------------ | ------ | -------------------------------------------- | ----- |
| **progress** | number | The sync progress value between 0.0 and 1.0. | 0.0.1 |

#### RequireSyncEvent[¶](#requiresyncevent "Permanent link")

| Prop     | Type       | Description                            | Since |
| -------- | ---------- | -------------------------------------- | ----- |
| **tags** | string\[\] | The tags that require synchronization. | 0.0.1 |

### Type Aliases[¶](#type-aliases "Permanent link")

#### PermissionState[¶](#permissionstate "Permanent link")

`'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'`

#### PixlivePermissionType[¶](#pixlivepermissiontype "Permanent link")

`'bluetooth' | 'bluetoothConnect' | 'bluetoothScan' | 'camera' | 'location' | 'notifications'`

## FAQ[¶](#faq "Permanent link")

### Which method do I have to call first?[¶](#which-method-do-i-have-to-call-first "Permanent link")

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?[¶](#how-do-i-set-up-the-pixlive-sdk-in-my-project "Permanent link")

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?[¶](#does-this-plugin-support-swift-package-manager "Permanent link")

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

### Does this plugin work on the Web?[¶](#does-this-plugin-work-on-the-web "Permanent link")

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?[¶](#which-permissions-does-the-plugin-handle "Permanent link")

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?[¶](#can-i-use-this-plugin-with-ionic-react-vue-or-angular "Permanent link")

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[¶](#related-plugins "Permanent link")

* [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.

July 8, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/pixlive/#article", "headline": "Capacitor PixLive Plugin for Android & iOS", "name": "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.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/pixlive/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/pixlive/", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "about": {"@id": "https://capawesome.io/docs/sdks/capacitor/pixlive/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/pixlive/#software", "name": "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.", "url": "https://capawesome.io/docs/sdks/capacitor/pixlive/", "programmingLanguage": "TypeScript", "runtimePlatform": "Capacitor", "codeRepository": "https://github.com/capawesome-team", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}}]}
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Which method do I have to call first?", "acceptedAnswer": {"@type": "Answer", "text": "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)."}}, {"@type": "Question", "name": "How do I set up the PixLive SDK in my project?", "acceptedAnswer": {"@type": "Answer", "text": "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 section for details."}}, {"@type": "Question", "name": "Does this plugin support Swift Package Manager?", "acceptedAnswer": {"@type": "Answer", "text": "No, this plugin only supports CocoaPods as the iOS dependency manager. Swift Package Manager is not supported."}}, {"@type": "Question", "name": "Does this plugin work on the Web?", "acceptedAnswer": {"@type": "Answer", "text": "No, the plugin methods are only available on Android and iOS since they rely on the native PixLive SDK."}}, {"@type": "Question", "name": "Which permissions does the plugin handle?", "acceptedAnswer": {"@type": "Answer", "text": "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."}}, {"@type": "Question", "name": "Can I use this plugin with Ionic, React, Vue or Angular?", "acceptedAnswer": {"@type": "Answer", "text": "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."}}], "url": "https://capawesome.io/docs/sdks/capacitor/pixlive/"}
```
