Skip to content

@capawesome/capacitor-posthog

Unofficial Capacitor plugin for PostHog.1

Installation

npm install @capawesome/capacitor-posthog posthog-js
npx cap sync

Android

Variables

This plugin will use the following project variables (defined in your app’s variables.gradle file):

  • $androidxCoreKtxVersion version of androidx.core:core-ktx (default: 1.13.1)

Configuration

No configuration required for this plugin.

Demo

A working example can be found here: robingenz/capacitor-plugin-demo

Usage

import { Posthog } from '@capawesome/capacitor-posthog';

const alias = async () => {
  await Posthog.alias({
    alias: 'new-distinct-id',
  });
};

const capture = async () => {
  await Posthog.capture({
    event: 'event',
    properties: {
      key: 'value',
    },
  });
};

const flush = async () => {
  await Posthog.flush();
};

const group = async () => {
  await Posthog.group({
    type: 'group',
    key: 'key',
    groupProperties: {
      key: 'value',
    },
  });
};

const identify = async () => {
  await Posthog.identify({
    distinctId: 'distinct-id',
    userProperties: {
      key: 'value',
    },
  });
};

const register = async () => {
  await Posthog.register({
    key: 'super-property',
    value: 'super-value',
  });
};

const reset = async () => {
  await Posthog.reset();
};

const screen = async () => {
  await Posthog.screen({
    screenTitle: 'screen',
    properties: {
      key: 'value',
    },
  });
};

const setup = async () => {
  await Posthog.setup({
    apiKey: 'YOUR_API_KEY',
    host: 'https://eu.i.posthog.com',
    });
};

const unregister = async () => {
  await Posthog.unregister({
    key: 'super-property',
  });
};

API

alias(...)

alias(options: AliasOptions) => Promise<void>

Assign another distinct ID to the current user.

Param Type
options AliasOptions

Since: 6.0.0


capture(...)

capture(options: CaptureOptions) => Promise<void>

Capture an event.

Param Type
options CaptureOptions

Since: 6.0.0


flush()

flush() => Promise<void>

Flush all events in the queue.

Only available on Android and iOS.

Since: 6.0.0


group(...)

group(options: GroupOptions) => Promise<void>

Associate the events for that user with a group.

Param Type
options GroupOptions

Since: 6.0.0


identify(...)

identify(options: IdentifyOptions) => Promise<void>

Identify the current user.

Param Type
options IdentifyOptions

Since: 6.0.0


register(...)

register(options: RegisterOptions) => Promise<void>

Register a new super property. This property will be sent with every event.

Param Type
options RegisterOptions

Since: 6.0.0


reset()

reset() => Promise<void>

Reset the current user's ID and anonymous ID.

Since: 6.0.0


screen(...)

screen(options: ScreenOptions) => Promise<void>

Send a screen event.

Only available on Android and iOS.

Param Type
options ScreenOptions

Since: 6.0.0


setup(...)

setup(options: SetupOptions) => Promise<void>

Setup the PostHog SDK with the provided options.

Attention: This method should be called before any other method.

Param Type
options SetupOptions

Since: 6.0.0


unregister(...)

unregister(options: UnregisterOptions) => Promise<void>

Remove a super property.

Param Type
options UnregisterOptions

Since: 6.0.0


Interfaces

AliasOptions

Prop Type Description Since
alias string The new distinct ID to assign to the current user. 6.0.0

CaptureOptions

Prop Type Description Since
event string The name of the event to capture. 6.0.0
properties Record<string, any> The properties to send with the event. 6.0.0

GroupOptions

Prop Type Description Since
type string The group type. 6.0.0
key string The group key. 6.0.0
groupProperties Record<string, any> The properties to send with the group event. 6.0.0

IdentifyOptions

Prop Type Description Since
distinctId string The distinct ID of the user. 6.0.0
userProperties Record<string, any> The person properties to set. 6.0.0

RegisterOptions

Prop Type Description Since
key string The name of the super property. 6.0.0
value any The value of the super property. 6.0.0

ScreenOptions

Prop Type Description Since
screenTitle string The name of the screen. 6.0.0
properties Record<string, any> The properties to send with the screen event. 6.0.0

SetupOptions

Prop Type Description Default Since
apiKey string The API key of your PostHog project. 6.0.0
host string The host of your PostHog instance. 'https://us.i.posthog.com' 6.0.0

UnregisterOptions

Prop Type Description Since
key string The name of the super property to remove. 6.0.0

Type Aliases

Record

Construct a type with a set of properties K of type T

{

}

Changelog

See CHANGELOG.md.

License

See LICENSE.


  1. This project is not affiliated with, endorsed by, sponsored by, or approved by PostHog, Inc. or any of their affiliates or subsidiaries.