diff --git a/.changeset/add-notification-tapped-listener.md b/.changeset/add-notification-tapped-listener.md new file mode 100644 index 000000000..6a337a4cd --- /dev/null +++ b/.changeset/add-notification-tapped-listener.md @@ -0,0 +1,5 @@ +--- +"@capawesome-team/capacitor-android-foreground-service": minor +--- + +feat(android): add `notificationTapped` event listener diff --git a/packages/accelerometer/README.md b/packages/accelerometer/README.md index 33b14d77b..ca673f2d6 100644 --- a/packages/accelerometer/README.md +++ b/packages/accelerometer/README.md @@ -23,6 +23,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -32,7 +36,7 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation -This plugin is only available to [Capawesome Insiders](https://capawesome.io/sponsors/insiders/). +This plugin is only available to [Capawesome Insiders](https://capawesome.io/insiders/). First, make sure you have the Capawesome npm registry set up. You can do this by running the following commands: @@ -41,11 +45,24 @@ npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken ``` -**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/sponsors/insiders/). +**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). + +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` -Next, install the package: +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-accelerometer` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-accelerometer npx cap sync ``` diff --git a/packages/age-signals/README.md b/packages/age-signals/README.md index a35eb0ace..e3c7ebaaa 100644 --- a/packages/age-signals/README.md +++ b/packages/age-signals/README.md @@ -22,6 +22,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -31,6 +35,21 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-age-signals` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-age-signals npx cap sync diff --git a/packages/android-battery-optimization/README.md b/packages/android-battery-optimization/README.md index fe4ba804a..64e7e8604 100644 --- a/packages/android-battery-optimization/README.md +++ b/packages/android-battery-optimization/README.md @@ -8,6 +8,10 @@ Capacitor plugin for Android to manage battery optimization settings, request ex +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -16,6 +20,21 @@ Capacitor plugin for Android to manage battery optimization settings, request ex ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-android-battery-optimization` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome-team/capacitor-android-battery-optimization npx cap sync diff --git a/packages/android-dark-mode-support/README.md b/packages/android-dark-mode-support/README.md index ffb9d6008..8a242e1b8 100644 --- a/packages/android-dark-mode-support/README.md +++ b/packages/android-dark-mode-support/README.md @@ -8,6 +8,10 @@ Capacitor plugin for seamless Android dark mode support. Enhance user experience +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -16,6 +20,21 @@ Capacitor plugin for seamless Android dark mode support. Enhance user experience ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-android-dark-mode-support` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-android-dark-mode-support npx cap sync diff --git a/packages/android-edge-to-edge-support/README.md b/packages/android-edge-to-edge-support/README.md index d98672794..3dfeb5495 100644 --- a/packages/android-edge-to-edge-support/README.md +++ b/packages/android-edge-to-edge-support/README.md @@ -14,6 +14,10 @@ Capacitor plugin to support [edge-to-edge](https://developer.android.com/develop **Attention:** Despite its name, this plugin doesn't enable edge-to-edge mode by default. Instead, it preserves the traditional app behavior by applying proper insets to the webview, preventing Android's edge-to-edge changes from affecting apps that haven't been designed to support it. +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -23,6 +27,21 @@ Capacitor plugin to support [edge-to-edge](https://developer.android.com/develop ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-android-edge-to-edge-support` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-android-edge-to-edge-support npx cap sync diff --git a/packages/android-foreground-service/README.md b/packages/android-foreground-service/README.md index c8d4f42ee..cbb98ccf5 100644 --- a/packages/android-foreground-service/README.md +++ b/packages/android-foreground-service/README.md @@ -8,6 +8,10 @@ Capacitor plugin to run a foreground service on Android. +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -16,6 +20,21 @@ Capacitor plugin to run a foreground service on Android. ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-android-foreground-service` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome-team/capacitor-android-foreground-service npx cap sync @@ -117,21 +136,50 @@ const deleteNotificationChannel = async () => { -* [`moveToForeground()`](#movetoforeground) -* [`startForegroundService(...)`](#startforegroundservice) -* [`updateForegroundService(...)`](#updateforegroundservice) -* [`stopForegroundService()`](#stopforegroundservice) -* [`checkPermissions()`](#checkpermissions) -* [`requestPermissions()`](#requestpermissions) -* [`checkManageOverlayPermission()`](#checkmanageoverlaypermission) -* [`requestManageOverlayPermission()`](#requestmanageoverlaypermission) -* [`createNotificationChannel(...)`](#createnotificationchannel) -* [`deleteNotificationChannel(...)`](#deletenotificationchannel) -* [`addListener('buttonClicked', ...)`](#addlistenerbuttonclicked-) -* [`removeAllListeners()`](#removealllisteners) -* [Interfaces](#interfaces) -* [Type Aliases](#type-aliases) -* [Enums](#enums) +- [@capawesome-team/capacitor-android-foreground-service](#capawesome-teamcapacitor-android-foreground-service) + - [Newsletter](#newsletter) + - [Compatibility](#compatibility) + - [Installation](#installation) + - [Android](#android) + - [Configuration](#configuration) + - [Demo](#demo) + - [Usage](#usage) + - [API](#api) + - [moveToForeground()](#movetoforeground) + - [startForegroundService(...)](#startforegroundservice) + - [updateForegroundService(...)](#updateforegroundservice) + - [stopForegroundService()](#stopforegroundservice) + - [checkPermissions()](#checkpermissions) + - [requestPermissions()](#requestpermissions) + - [checkManageOverlayPermission()](#checkmanageoverlaypermission) + - [requestManageOverlayPermission()](#requestmanageoverlaypermission) + - [createNotificationChannel(...)](#createnotificationchannel) + - [deleteNotificationChannel(...)](#deletenotificationchannel) + - [addListener('buttonClicked', ...)](#addlistenerbuttonclicked-) + - [addListener('notificationTapped', ...)](#addlistenernotificationtapped-) + - [removeAllListeners()](#removealllisteners) + - [Interfaces](#interfaces) + - [StartForegroundServiceOptions](#startforegroundserviceoptions) + - [NotificationButton](#notificationbutton) + - [PermissionStatus](#permissionstatus) + - [ManageOverlayPermissionResult](#manageoverlaypermissionresult) + - [CreateNotificationChannelOptions](#createnotificationchanneloptions) + - [DeleteNotificationChannelOptions](#deletenotificationchanneloptions) + - [PluginListenerHandle](#pluginlistenerhandle) + - [ButtonClickedEvent](#buttonclickedevent) + - [NotificationTappedEvent](#notificationtappedevent) + - [Type Aliases](#type-aliases) + - [UpdateForegroundServiceOptions](#updateforegroundserviceoptions) + - [PermissionState](#permissionstate) + - [ButtonClickedEventListener](#buttonclickedeventlistener) + - [NotificationTappedEventListener](#notificationtappedeventlistener) + - [Enums](#enums) + - [ServiceType](#servicetype) + - [Importance](#importance) + - [FAQ](#faq) + - [Why can the user dismiss the notification?](#why-can-the-user-dismiss-the-notification) + - [Changelog](#changelog) + - [License](#license) @@ -344,6 +392,28 @@ Only available on iOS. -------------------- +### addListener('notificationTapped', ...) + +```typescript +addListener(eventName: 'notificationTapped', listenerFunc: NotificationTappedEventListener) => Promise +``` + +Called when the foreground service notification is tapped. + +Only available on Android. + +| Param | Type | +| ------------------ | --------------------------------------------------------------------------------------------- | +| **`eventName`** | 'notificationTapped' | +| **`listenerFunc`** | NotificationTappedEventListener | + +**Returns:** Promise<PluginListenerHandle> + +**Since:** 8.1.0 + +-------------------- + + ### removeAllListeners() ```typescript @@ -427,6 +497,13 @@ Remove all listeners for this plugin. | **`buttonId`** | number | The button identifier. | 0.2.0 | +#### NotificationTappedEvent + +| Prop | Type | Description | Since | +| -------------------- | ------------------- | ---------------------------- | ----- | +| **`notificationId`** | number | The notification identifier. | 8.1.0 | + + ### Type Aliases @@ -445,6 +522,11 @@ Remove all listeners for this plugin. (event: ButtonClickedEvent): void +#### NotificationTappedEventListener + +(event: NotificationTappedEvent): void + + ### Enums diff --git a/packages/android-foreground-service/android/src/main/java/io/capawesome/capacitorjs/plugins/foregroundservice/AndroidForegroundService.java b/packages/android-foreground-service/android/src/main/java/io/capawesome/capacitorjs/plugins/foregroundservice/AndroidForegroundService.java index 36d0de562..3df5ad507 100644 --- a/packages/android-foreground-service/android/src/main/java/io/capawesome/capacitorjs/plugins/foregroundservice/AndroidForegroundService.java +++ b/packages/android-foreground-service/android/src/main/java/io/capawesome/capacitorjs/plugins/foregroundservice/AndroidForegroundService.java @@ -77,15 +77,19 @@ public int onStartCommand(Intent intent, int flags, int startId) { } private PendingIntent buildContentIntent(int id) { - String packageName = getApplicationContext().getPackageName(); - Intent intent = getApplicationContext().getPackageManager().getLaunchIntentForPackage(packageName); + Intent launchIntent = getPackageManager().getLaunchIntentForPackage(getPackageName()); + if (launchIntent == null) { + return null; + } + launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); + launchIntent.putExtra(ForegroundServicePlugin.NOTIFICATION_TAP_EXTRA, id); int pendingIntentFlags; if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - pendingIntentFlags = PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_MUTABLE; + pendingIntentFlags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE; } else { - pendingIntentFlags = PendingIntent.FLAG_CANCEL_CURRENT; + pendingIntentFlags = PendingIntent.FLAG_UPDATE_CURRENT; } - return PendingIntent.getActivity(getApplicationContext(), id, intent, pendingIntentFlags); + return PendingIntent.getActivity(getApplicationContext(), id, launchIntent, pendingIntentFlags); } private Notification.Action[] convertBundlesToNotificationActions(Bundle[] bundles) { diff --git a/packages/android-foreground-service/android/src/main/java/io/capawesome/capacitorjs/plugins/foregroundservice/ForegroundServicePlugin.java b/packages/android-foreground-service/android/src/main/java/io/capawesome/capacitorjs/plugins/foregroundservice/ForegroundServicePlugin.java index 24cb513a8..aa2c75f32 100644 --- a/packages/android-foreground-service/android/src/main/java/io/capawesome/capacitorjs/plugins/foregroundservice/ForegroundServicePlugin.java +++ b/packages/android-foreground-service/android/src/main/java/io/capawesome/capacitorjs/plugins/foregroundservice/ForegroundServicePlugin.java @@ -34,6 +34,8 @@ public class ForegroundServicePlugin extends Plugin { public static final String TAG = "ForegroundService"; public static final String BUTTON_CLICKED_EVENT = "buttonClicked"; + public static final String NOTIFICATION_TAPPED_EVENT = "notificationTapped"; + public static final String NOTIFICATION_TAP_EXTRA = "io.capawesome.capacitorjs.plugins.foregroundservice.NOTIFICATION_TAP_ID"; public static Bridge staticBridge = null; private static final String MOVE_TO_FOREGROUND_CALLBACK_NAME = "moveToForegroundResult"; @@ -47,11 +49,34 @@ public void load() { try { staticBridge = this.bridge; implementation = new ForegroundService(this); + handleNotificationTapIntent(getActivity().getIntent()); } catch (Exception exception) { Logger.error(ForegroundServicePlugin.TAG, exception.getMessage(), exception); } } + @Override + protected void handleOnNewIntent(Intent intent) { + super.handleOnNewIntent(intent); + handleNotificationTapIntent(intent); + } + + // Notification taps are delivered via an intent extra rather than a static method call so that + // the tap is always handled by the current plugin instance. A static bridge reference can go + // stale when the activity is recreated (e.g. after a configuration change or process death), + // which would silently drop the event. + private void handleNotificationTapIntent(Intent intent) { + if (intent == null || !intent.hasExtra(NOTIFICATION_TAP_EXTRA)) { + return; + } + int notificationId = intent.getIntExtra(NOTIFICATION_TAP_EXTRA, -1); + intent.removeExtra(NOTIFICATION_TAP_EXTRA); + if (notificationId < 0) { + return; + } + handleNotificationTapped(notificationId); + } + @PluginMethod public void moveToForeground(PluginCall call) { try { @@ -263,6 +288,12 @@ private void permissionsCallback(PluginCall call) { this.checkPermissions(call); } + private void handleNotificationTapped(int notificationId) { + JSObject result = new JSObject(); + result.put("notificationId", notificationId); + notifyListeners(NOTIFICATION_TAPPED_EVENT, result, true); + } + private void handleButtonClicked(int buttonId) { JSObject result = new JSObject(); result.put("buttonId", buttonId); diff --git a/packages/android-foreground-service/src/definitions.ts b/packages/android-foreground-service/src/definitions.ts index 415fb542f..fac73de4b 100644 --- a/packages/android-foreground-service/src/definitions.ts +++ b/packages/android-foreground-service/src/definitions.ts @@ -109,6 +109,17 @@ export interface ForegroundServicePlugin { eventName: 'buttonClicked', listenerFunc: ButtonClickedEventListener, ): Promise; + /** + * Called when the foreground service notification is tapped. + * + * Only available on Android. + * + * @since 8.1.0 + */ + addListener( + eventName: 'notificationTapped', + listenerFunc: NotificationTappedEventListener, + ): Promise; /** * Remove all listeners for this plugin. * @@ -226,6 +237,25 @@ export interface ManageOverlayPermissionResult { */ export type ButtonClickedEventListener = (event: ButtonClickedEvent) => void; +/** + * @since 8.1.0 + */ +export type NotificationTappedEventListener = ( + event: NotificationTappedEvent, +) => void; + +/** + * @since 8.1.0 + */ +export interface NotificationTappedEvent { + /** + * The notification identifier. + * + * @since 8.1.0 + */ + notificationId: number; +} + /** * @since 0.2.0 */ diff --git a/packages/app-review/README.md b/packages/app-review/README.md index 1991cb288..5cf5d3f52 100644 --- a/packages/app-review/README.md +++ b/packages/app-review/README.md @@ -8,6 +8,10 @@ Capacitor plugin that allows users to submit app store reviews and ratings. +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -16,6 +20,21 @@ Capacitor plugin that allows users to submit app store reviews and ratings. ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-app-review` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-app-review npx cap sync diff --git a/packages/app-shortcuts/README.md b/packages/app-shortcuts/README.md index e94dee1d0..7e00cf950 100644 --- a/packages/app-shortcuts/README.md +++ b/packages/app-shortcuts/README.md @@ -8,6 +8,10 @@ Capacitor plugin to manage app shortcuts and quick actions. +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -16,6 +20,21 @@ Capacitor plugin to manage app shortcuts and quick actions. ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-app-shortcuts` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands: + ```bash npm install @capawesome/capacitor-app-shortcuts npx cap sync diff --git a/packages/app-update/README.md b/packages/app-update/README.md index 128891199..7f7ab6b36 100644 --- a/packages/app-update/README.md +++ b/packages/app-update/README.md @@ -41,6 +41,21 @@ Stay up to date with the latest news and updates about the Capawesome, Capacitor ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-app-update` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-app-update npx cap sync diff --git a/packages/apple-sign-in/README.md b/packages/apple-sign-in/README.md index d905b7241..63d171977 100644 --- a/packages/apple-sign-in/README.md +++ b/packages/apple-sign-in/README.md @@ -24,6 +24,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -36,6 +40,21 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-apple-sign-in` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-apple-sign-in npx cap sync diff --git a/packages/asset-manager/README.md b/packages/asset-manager/README.md index 77058cc4f..399785217 100644 --- a/packages/asset-manager/README.md +++ b/packages/asset-manager/README.md @@ -35,6 +35,21 @@ Stay up to date with the latest news and updates about the Capawesome, Capacitor ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-asset-manager` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands: + ```bash npm install @capawesome/capacitor-asset-manager npx cap sync diff --git a/packages/audio-player/README.md b/packages/audio-player/README.md index 6cdc6537a..5352ffc81 100644 --- a/packages/audio-player/README.md +++ b/packages/audio-player/README.md @@ -28,6 +28,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -37,7 +41,7 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation -This plugin is only available to [Capawesome Insiders](https://capawesome.io/sponsors/insiders/). +This plugin is only available to [Capawesome Insiders](https://capawesome.io/insiders/). First, make sure you have the Capawesome npm registry set up. You can do this by running the following commands: @@ -46,11 +50,24 @@ npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken ``` -**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/sponsors/insiders/). +**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). + +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` -Next, install the package: +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-audio-player` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-audio-player npx cap sync ``` diff --git a/packages/audio-recorder/README.md b/packages/audio-recorder/README.md index e4f35136e..9de318185 100644 --- a/packages/audio-recorder/README.md +++ b/packages/audio-recorder/README.md @@ -26,6 +26,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -51,9 +55,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-audio-recorder` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-audio-recorder npx cap sync ``` diff --git a/packages/background-task/README.md b/packages/background-task/README.md index 19cad3d9f..167548f0f 100644 --- a/packages/background-task/README.md +++ b/packages/background-task/README.md @@ -8,6 +8,10 @@ Capacitor plugin for running background tasks. +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -19,6 +23,21 @@ Capacitor plugin for running background tasks. ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-background-task` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands: + ```bash npm install @capawesome/capacitor-background-task npx cap sync diff --git a/packages/badge/README.md b/packages/badge/README.md index f470258f0..471315830 100644 --- a/packages/badge/README.md +++ b/packages/badge/README.md @@ -37,6 +37,21 @@ Stay up to date with the latest news and updates about the Capawesome, Capacitor ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-badge` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-badge npx cap sync diff --git a/packages/barometer/README.md b/packages/barometer/README.md index f1b123bda..b0413281d 100644 --- a/packages/barometer/README.md +++ b/packages/barometer/README.md @@ -26,6 +26,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -40,7 +44,7 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation -This plugin is only available to [Capawesome Insiders](https://capawesome.io/sponsors/insiders/). +This plugin is only available to [Capawesome Insiders](https://capawesome.io/insiders/). First, make sure you have the Capawesome npm registry set up. You can do this by running the following commands: @@ -49,11 +53,24 @@ npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken ``` -**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/sponsors/insiders/). +**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). + +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` -Next, install the package: +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-barometer` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-barometer npx cap sync ``` diff --git a/packages/biometrics/README.md b/packages/biometrics/README.md index 200a9810f..e3efd0461 100644 --- a/packages/biometrics/README.md +++ b/packages/biometrics/README.md @@ -25,6 +25,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -54,9 +58,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-biometrics` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-biometrics npx cap sync ``` diff --git a/packages/bluetooth-low-energy/README.md b/packages/bluetooth-low-energy/README.md index a6c197d33..6f69236b5 100644 --- a/packages/bluetooth-low-energy/README.md +++ b/packages/bluetooth-low-energy/README.md @@ -35,6 +35,10 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac -- [PadelBand](https://padel-band.com) Development Team +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -69,9 +73,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-bluetooth-low-energy` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-bluetooth-low-energy npx cap sync ``` diff --git a/packages/cloudinary/README.md b/packages/cloudinary/README.md index c9642adcf..1f699dcea 100644 --- a/packages/cloudinary/README.md +++ b/packages/cloudinary/README.md @@ -17,6 +17,10 @@ Capacitor Cloudinary allows you to use the native Cloudinary SDKs to upload file - ❌ No more out-of-memory issues - 📁 Works with the [Capacitor Filesystem](https://capacitorjs.com/docs/apis/filesystem) and [Capacitor File Picker](https://github.com/capawesome-team/capacitor-file-picker) +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -28,6 +32,21 @@ Capacitor Cloudinary allows you to use the native Cloudinary SDKs to upload file ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-cloudinary` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-cloudinary npx cap sync diff --git a/packages/contacts/README.md b/packages/contacts/README.md index e3578831d..6b533e92b 100644 --- a/packages/contacts/README.md +++ b/packages/contacts/README.md @@ -29,6 +29,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -55,9 +59,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-contacts` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-contacts npx cap sync ``` diff --git a/packages/datetime-picker/README.md b/packages/datetime-picker/README.md index 7e4475d49..5fb645dcb 100644 --- a/packages/datetime-picker/README.md +++ b/packages/datetime-picker/README.md @@ -39,6 +39,21 @@ Stay up to date with the latest news and updates about the Capawesome, Capacitor ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-datetime-picker` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands: + ```bash npm install @capawesome-team/capacitor-datetime-picker npx cap sync diff --git a/packages/file-compressor/README.md b/packages/file-compressor/README.md index dbefb17ce..aa8a6571e 100644 --- a/packages/file-compressor/README.md +++ b/packages/file-compressor/README.md @@ -22,6 +22,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -55,9 +59,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-file-compressor` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-file-compressor npx cap sync ``` diff --git a/packages/file-opener/README.md b/packages/file-opener/README.md index 3c463611c..873ac076d 100644 --- a/packages/file-opener/README.md +++ b/packages/file-opener/README.md @@ -37,6 +37,21 @@ Stay up to date with the latest news and updates about the Capawesome, Capacitor ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-file-opener` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome-team/capacitor-file-opener npx cap sync diff --git a/packages/file-picker/README.md b/packages/file-picker/README.md index 1ac3f1a48..ab698533e 100644 --- a/packages/file-picker/README.md +++ b/packages/file-picker/README.md @@ -38,6 +38,21 @@ Stay up to date with the latest news and updates about the Capawesome, Capacitor ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-file-picker` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-file-picker npx cap sync diff --git a/packages/geocoder/README.md b/packages/geocoder/README.md index f91b855a1..c10bed4c8 100644 --- a/packages/geocoder/README.md +++ b/packages/geocoder/README.md @@ -26,6 +26,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -41,7 +45,7 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation -This plugin is only available to [Capawesome Insiders](https://capawesome.io/sponsors/insiders/). +This plugin is only available to [Capawesome Insiders](https://capawesome.io/insiders/). First, make sure you have the Capawesome npm registry set up. You can do this by running the following commands: @@ -50,11 +54,24 @@ npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken ``` -**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/sponsors/insiders/). +**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). + +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` -Next, install the package: +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-geocoder` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-geocoder universal-geocoder npx cap sync ``` diff --git a/packages/google-sign-in/README.md b/packages/google-sign-in/README.md index 42526074c..16c5639c1 100644 --- a/packages/google-sign-in/README.md +++ b/packages/google-sign-in/README.md @@ -25,6 +25,10 @@ We are proud to offer a comprehensive Capacitor plugin for Google Sign-In. Here Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -35,9 +39,24 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac - [How to Sign In with Google using Capacitor](https://capawesome.io/blog/how-to-sign-in-with-google-using-capacitor/) -## Installation +## Installation + +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-google-sign-in` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: -```bash +```bash npm install @capawesome/capacitor-google-sign-in npx cap sync ``` diff --git a/packages/libsql/README.md b/packages/libsql/README.md index 9cfaf4d3e..64e241ca1 100644 --- a/packages/libsql/README.md +++ b/packages/libsql/README.md @@ -8,6 +8,10 @@ Capacitor plugin for [libSQL](https://docs.turso.tech/libsql) databases.[^1] +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -17,6 +21,21 @@ Capacitor plugin for [libSQL](https://docs.turso.tech/libsql) databases.[^1] ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-libsql` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-libsql npx cap sync @@ -191,7 +210,7 @@ execute(options: ExecuteOptions) => Promise Execute a single SQL statement on the specified database connection. -This method can be used to execute any SQL statement, including +This method can be used to execute any SQL statement, including `INSERT`, `UPDATE`, `DELETE`, and `CREATE TABLE`. | Param | Type | @@ -230,7 +249,7 @@ query(options: QueryOptions) => Promise Query the database and return the result set. -This method can be used to execute `SELECT` statements +This method can be used to execute `SELECT` statements and retrieve the result set. | Param | Type | diff --git a/packages/live-update/README.md b/packages/live-update/README.md index 93a0da41b..e1032d3f6 100644 --- a/packages/live-update/README.md +++ b/packages/live-update/README.md @@ -31,13 +31,17 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | | -------------- | ----------------- | -------------- | | 8.x.x | >=8.x.x | Active support | | 7.x.x | 7.x.x | Maintenance | -| 6.x.x | 6.x.x | Deprecated | +| 6.x.x | 6.x.x | Maintenance | | 5.x.x | 5.x.x | Deprecated | ## Guides @@ -48,6 +52,21 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-live-update` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-live-update npx cap sync @@ -995,7 +1014,7 @@ Remove all listeners for this plugin. | Prop | Type | Description | Since | | ---------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | | **`artifactType`** | 'manifest' \| 'zip' | The artifact type of the bundle. | 6.7.0 | -| **`bundleId`** | string \| null | The unique identifier of the latest bundle. If `null`, no bundle is available. | 6.6.0 | +| **`bundleId`** | string \| null | The unique identifier of the latest bundle. On Capawesome Cloud, this is the ID of the app build artifact. If `null`, no bundle is available. | 6.6.0 | | **`checksum`** | string | The checksum of the latest bundle if the bundle is self-hosted. If the bundle is hosted on Capawesome Cloud, the checksum will be returned as response header when downloading the bundle. | 7.1.0 | | **`customProperties`** | { [key: string]: string; } | Custom properties that are associated with the latest bundle. | 7.0.0 | | **`downloadUrl`** | string | The URL of the latest bundle to download. Pass this URL to the `downloadBundle(...)` method to download the bundle. | 6.7.0 | @@ -1228,6 +1247,13 @@ For this reason, you must be careful to [restrict live updates to compatible nat ## FAQ +### What is a bundle? + +A bundle is a set of web assets (HTML, CSS, JavaScript, etc.) that make up your app's user interface. +The plugin manages two types of bundles: the **built-in bundle** that ships with the native app binary, and **live update bundles** that are downloaded at runtime to update the app without a native release. +Each live update bundle has a unique **bundle ID** returned by the [`fetchLatestBundle(...)`](#fetchlatestbundle) method. +On Capawesome Cloud, the bundle ID corresponds to the ID of the app build artifact. + ### How do I set a channel? There are four ways to set a channel, listed from lowest to highest priority: @@ -1237,8 +1263,9 @@ There are four ways to set a channel, listed from lowest to highest priority: 3. **[`setChannel(...)`](#setchannel)**: Set the channel at runtime. The value is persisted across app restarts. 4. **[`sync(...)`](#sync)**: Pass a `channel` option to override the channel for a single sync call. This does **not** persist the channel. -Each method overrides the ones above it. -You can check the currently resolved channel by calling [`getChannel()`](#getchannel). +Each method overrides the ones above it. You can check the currently resolved channel by calling [`getChannel()`](#getchannel). + +Additionally, Capawesome Cloud supports [forced channel assignments](https://capawesome.io/blog/capawesome-cloud-forced-channel-assignments/) which allow you to override the channel for a specific device without any app code changes. Please note that forced channel assignments have a higher priority than all of the above methods and should be used with caution. ### Why can't I see my changes during development? diff --git a/packages/live-update/src/definitions.ts b/packages/live-update/src/definitions.ts index 34346e627..c5606c0aa 100644 --- a/packages/live-update/src/definitions.ts +++ b/packages/live-update/src/definitions.ts @@ -578,6 +578,8 @@ export interface FetchLatestBundleResult { /** * The unique identifier of the latest bundle. * + * On Capawesome Cloud, this is the ID of the app build artifact. + * * If `null`, no bundle is available. * * @since 6.6.0 diff --git a/packages/managed-configurations/README.md b/packages/managed-configurations/README.md index 0b28e31b7..cdfbeaff0 100644 --- a/packages/managed-configurations/README.md +++ b/packages/managed-configurations/README.md @@ -8,6 +8,10 @@ Capacitor plugin to access managed configuration settings. +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -19,6 +23,21 @@ Capacitor plugin to access managed configuration settings. ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-managed-configurations` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-managed-configurations npx cap sync diff --git a/packages/media-session/README.md b/packages/media-session/README.md index 822f0ba7e..65e4d0769 100644 --- a/packages/media-session/README.md +++ b/packages/media-session/README.md @@ -27,6 +27,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -42,7 +46,7 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation -This plugin is only available to [Capawesome Insiders](https://capawesome.io/sponsors/insiders/). +This plugin is only available to [Capawesome Insiders](https://capawesome.io/insiders/). First, make sure you have the Capawesome npm registry set up. You can do this by running the following commands: @@ -51,11 +55,24 @@ npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken ``` -**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/sponsors/insiders/). +**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). + +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` -Next, install the package: +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-media-session` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-media-session npx cap sync ``` diff --git a/packages/nfc/README.md b/packages/nfc/README.md index f2100e0ff..4b3de8288 100644 --- a/packages/nfc/README.md +++ b/packages/nfc/README.md @@ -26,6 +26,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -60,9 +64,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-nfc` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-nfc npx cap sync ``` diff --git a/packages/oauth/README.md b/packages/oauth/README.md index b83425907..195e46ddd 100644 --- a/packages/oauth/README.md +++ b/packages/oauth/README.md @@ -27,6 +27,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -50,7 +54,7 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation -This plugin is only available to [Capawesome Insiders](https://capawesome.io/sponsors/insiders/). +This plugin is only available to [Capawesome Insiders](https://capawesome.io/insiders/). First, make sure you have the Capawesome npm registry set up. You can do this by running the following commands: @@ -59,11 +63,24 @@ npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken ``` -**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/sponsors/insiders/). +**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). + +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` -Next, install the package: +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-oauth` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-oauth npx cap sync ``` diff --git a/packages/pedometer/README.md b/packages/pedometer/README.md index 7a5ec275c..6e72a5c96 100644 --- a/packages/pedometer/README.md +++ b/packages/pedometer/README.md @@ -24,6 +24,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -33,7 +37,7 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation -This plugin is only available to [Capawesome Insiders](https://capawesome.io/sponsors/insiders/). +This plugin is only available to [Capawesome Insiders](https://capawesome.io/insiders/). First, make sure you have the Capawesome npm registry set up. You can do this by running the following commands: @@ -42,11 +46,24 @@ npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken ``` -**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/sponsors/insiders/). +**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). + +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` -Next, install the package: +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-pedometer` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-pedometer npx cap sync ``` diff --git a/packages/photo-editor/README.md b/packages/photo-editor/README.md index b0d5177a0..1358337b6 100644 --- a/packages/photo-editor/README.md +++ b/packages/photo-editor/README.md @@ -8,6 +8,10 @@ Capacitor plugin that allows the user to edit a photo. +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -19,6 +23,21 @@ Capacitor plugin that allows the user to edit a photo. ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-photo-editor` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-photo-editor npx cap sync diff --git a/packages/posthog/CHANGELOG.md b/packages/posthog/CHANGELOG.md index 12bfda802..6830873d3 100644 --- a/packages/posthog/CHANGELOG.md +++ b/packages/posthog/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 8.3.0 + +### Minor Changes + +- [`578fce907bc01da7bb8e17b7e9aa69c84bcd04f4`](https://github.com/capawesome-team/capacitor-plugins/commit/578fce907bc01da7bb8e17b7e9aa69c84bcd04f4) ([#797](https://github.com/capawesome-team/capacitor-plugins/pull/797)): feat: add `apiHost` and `uiHost` configuration options + ## 8.2.1 ### Patch Changes diff --git a/packages/posthog/README.md b/packages/posthog/README.md index 1b7a511d9..8392b6f44 100644 --- a/packages/posthog/README.md +++ b/packages/posthog/README.md @@ -8,6 +8,10 @@ Unofficial Capacitor plugin for [PostHog](https://posthog.com/).[^1] +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -17,6 +21,21 @@ Unofficial Capacitor plugin for [PostHog](https://posthog.com/).[^1] ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-posthog` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-posthog posthog-js npx cap sync @@ -38,12 +57,14 @@ This can be useful if you encounter dependency conflicts with other plugins in y -| Prop | Type | Description | Default | Since | -| ------------------------- | --------------------------------------------------------------------- | -------------------------------------------------- | --------------------------------------- | ----- | -| **`apiKey`** | string | The API key of your PostHog project. | | 7.1.0 | -| **`host`** | string | The host of your PostHog instance. | 'https://us.i.posthog.com' | 7.1.0 | -| **`enableSessionReplay`** | boolean | Whether to enable session recording automatically. | false | 7.3.0 | -| **`sessionReplayConfig`** | SessionReplayOptions | Session recording configuration options. | | 7.3.0 | +| Prop | Type | Description | Default | Since | +| ------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------- | ----- | +| **`apiKey`** | string | The API key of your PostHog project. | | 7.1.0 | +| **`apiHost`** | string | The API host of your PostHog instance or reverse proxy. | 'https://us.i.posthog.com' | 8.3.0 | +| **`host`** | string | The API host of your PostHog instance. Deprecated alias for `apiHost`. | 'https://us.i.posthog.com' | 7.1.0 | +| **`uiHost`** | string | The PostHog UI host used when `apiHost` points to a reverse proxy. Only available on Web. | | 8.3.0 | +| **`enableSessionReplay`** | boolean | Whether to enable session recording automatically. | false | 7.3.0 | +| **`sessionReplayConfig`** | SessionReplayOptions | Session recording configuration options. | | 7.3.0 | ### Examples @@ -54,7 +75,9 @@ In `capacitor.config.json`: "plugins": { "Posthog": { "apiKey": 'phc_g8wMenebiIQ1pYd5v9Vy7oakn6MczVKIsNG5ZHCspdy', + "apiHost": 'https://eu.i.posthog.com', "host": 'https://eu.i.posthog.com', + "uiHost": 'https://eu.posthog.com', "enableSessionReplay": undefined, "sessionReplayConfig": undefined } @@ -73,7 +96,9 @@ const config: CapacitorConfig = { plugins: { Posthog: { apiKey: 'phc_g8wMenebiIQ1pYd5v9Vy7oakn6MczVKIsNG5ZHCspdy', + apiHost: 'https://eu.i.posthog.com', host: 'https://eu.i.posthog.com', + uiHost: 'https://eu.posthog.com', enableSessionReplay: undefined, sessionReplayConfig: undefined, }, @@ -155,7 +180,7 @@ const screen = async () => { const setup = async () => { await Posthog.setup({ apiKey: 'YOUR_API_KEY', - host: 'https://eu.i.posthog.com', + apiHost: 'https://eu.i.posthog.com', }); }; @@ -535,10 +560,10 @@ Remove a super property. #### 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 | +| 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 | #### GetDistinctIdResult @@ -578,19 +603,19 @@ Remove a super property. #### 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 | +| 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 | +| 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 | #### IsFeatureEnabledResult @@ -624,10 +649,10 @@ Remove a super property. #### 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 | +| 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 @@ -635,9 +660,11 @@ Remove a super property. | Prop | Type | Description | Default | Since | | ------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | ----- | | **`apiKey`** | string | The API key of your PostHog project. | | 6.0.0 | +| **`apiHost`** | string | The API host of your PostHog instance or reverse proxy. If both `apiHost` and `host` are provided, `apiHost` takes precedence. | 'https://us.i.posthog.com' | 8.3.0 | +| **`host`** | string | The API host of your PostHog instance. Deprecated alias for `apiHost`. | 'https://us.i.posthog.com' | 6.0.0 | +| **`uiHost`** | string | The PostHog UI host used when `apiHost` points to a reverse proxy. Only available on Web. | | 8.3.0 | | **`cookielessMode`** | 'always' \| 'on_reject' | Cookieless tracking mode. - `'always'`: Always use cookieless tracking with server-side anonymous hash. - `'on_reject'`: Normal tracking until `optOut()` is called, then switches to cookieless. Only available on Web. Requires cookieless mode to be enabled in PostHog project settings. | | 8.1.0 | | **`enableSessionReplay`** | boolean | Whether to enable session recording automatically. | false | 7.3.0 | -| **`host`** | string | The host of your PostHog instance. | 'https://us.i.posthog.com' | 6.0.0 | | **`optOut`** | boolean | Whether to opt out of capturing by default. User must call `optIn()` to enable capturing. | false | 8.1.0 | | **`sessionReplayConfig`** | SessionReplayOptions | Session replay configuration options. | | 7.3.0 | @@ -664,19 +691,18 @@ Remove a super property. ### Type Aliases -#### Record - -Construct a type with a set of properties K of type T - -{ [P in K]: T; } - - #### JsonType string | number | boolean | null | { [key: string]: JsonType; } | JsonType[] +## Advanced + +### Reverse Proxy + +For PostHog managed reverse proxy, set `apiHost` to your proxy URL and `uiHost` to your PostHog app host (`https://us.posthog.com` or `https://eu.posthog.com`). `host` remains supported as a deprecated alias for `apiHost`. `uiHost` is only available on Web. + ## Changelog See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/posthog/CHANGELOG.md). diff --git a/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/Posthog.kt b/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/Posthog.kt index d9c437ee8..abc4bd298 100644 --- a/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/Posthog.kt +++ b/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/Posthog.kt @@ -26,7 +26,7 @@ class Posthog(private val config: PosthogConfig, private val plugin: PosthogPlug init { val apiKey = config.getApiKey() if (apiKey != null) { - setup(apiKey, config.getHost(), config.getEnableSessionReplay(), false, config.getSessionReplayConfig()) + setup(apiKey, config.getApiHost(), config.getEnableSessionReplay(), false, config.getSessionReplayConfig()) } } @@ -123,12 +123,12 @@ class Posthog(private val config: PosthogConfig, private val plugin: PosthogPlug fun setup(options: SetupOptions) { val apiKey = options.apiKey - val host = options.host + val apiHost = options.apiHost val enableSessionReplay = options.enableSessionReplay val optOut = options.optOut val sessionReplayConfig = options.sessionReplayConfig - setup(apiKey, host, enableSessionReplay, optOut, sessionReplayConfig) + setup(apiKey, apiHost, enableSessionReplay, optOut, sessionReplayConfig) } fun unregister(options: UnregisterOptions) { @@ -137,10 +137,10 @@ class Posthog(private val config: PosthogConfig, private val plugin: PosthogPlug com.posthog.PostHog.unregister(key = key) } - private fun setup(apiKey: String, host: String, enableSessionReplay: Boolean = false, optOut: Boolean = false, sessionReplayConfig: SessionReplayOptions? = null) { + private fun setup(apiKey: String, apiHost: String, enableSessionReplay: Boolean = false, optOut: Boolean = false, sessionReplayConfig: SessionReplayOptions? = null) { val posthogConfig = PostHogAndroidConfig( apiKey = apiKey, - host = host + host = apiHost ) posthogConfig.captureScreenViews = false posthogConfig.optOut = optOut diff --git a/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/PosthogConfig.java b/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/PosthogConfig.java index 1e9349093..62bfc9d6e 100644 --- a/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/PosthogConfig.java +++ b/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/PosthogConfig.java @@ -8,7 +8,7 @@ public class PosthogConfig { @Nullable private String apiKey = null; - private String host = "https://us.i.posthog.com"; + private String apiHost = "https://us.i.posthog.com"; private boolean enableSessionReplay = false; @@ -20,8 +20,8 @@ public String getApiKey() { return apiKey; } - public String getHost() { - return host; + public String getApiHost() { + return apiHost; } public boolean getEnableSessionReplay() { @@ -37,8 +37,8 @@ public void setApiKey(@Nullable String apiKey) { this.apiKey = apiKey; } - public void setHost(String host) { - this.host = host; + public void setApiHost(String apiHost) { + this.apiHost = apiHost; } public void setEnableSessionReplay(boolean enableSessionReplay) { diff --git a/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/PosthogPlugin.java b/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/PosthogPlugin.java index caef0d913..53080e6b9 100644 --- a/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/PosthogPlugin.java +++ b/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/PosthogPlugin.java @@ -283,11 +283,11 @@ public void setup(PluginCall call) { call.reject(ERROR_API_KEY_MISSING); return; } - String host = call.getString("host", "https://us.i.posthog.com"); + String apiHost = getApiHost(call.getString("apiHost"), call.getString("host")); Boolean enableSessionReplay = call.getBoolean("enableSessionReplay", false); Boolean optOut = call.getBoolean("optOut", false); - SetupOptions options = new SetupOptions(apiKey, host); + SetupOptions options = new SetupOptions(apiKey, apiHost); options.setEnableSessionReplay(enableSessionReplay != null ? enableSessionReplay : false); options.setOptOut(optOut != null ? optOut : false); @@ -334,14 +334,28 @@ private PosthogConfig getPosthogConfig() { String apiKey = getConfig().getString("apiKey", config.getApiKey()); config.setApiKey(apiKey); - String host = getConfig().getString("host", config.getHost()); - config.setHost(host); + String apiHost = getApiHost(getConfig().getString("apiHost"), getConfig().getString("host")); + config.setApiHost(apiHost); boolean enableSessionReplay = getConfig().getBoolean("enableSessionReplay", config.getEnableSessionReplay()); config.setEnableSessionReplay(enableSessionReplay); return config; } + private String getApiHost(@Nullable String apiHost, @Nullable String host) { + if (apiHost != null) { + if (host != null && !host.equals(apiHost)) { + Logger.warn(TAG, "Both apiHost and host are set. Using apiHost."); + } + return apiHost; + } + if (host != null) { + Logger.warn(TAG, "host is deprecated. Use apiHost instead."); + return host; + } + return "https://us.i.posthog.com"; + } + private void resolveCall(@NonNull PluginCall call, @Nullable JSObject result) { if (result == null) { call.resolve(); diff --git a/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/classes/options/SetupOptions.java b/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/classes/options/SetupOptions.java index 1849d6524..ea3e1bf84 100644 --- a/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/classes/options/SetupOptions.java +++ b/packages/posthog/android/src/main/java/io/capawesome/capacitorjs/plugins/posthog/classes/options/SetupOptions.java @@ -9,7 +9,7 @@ public class SetupOptions { private String apiKey; @NonNull - private String host; + private String apiHost; @Nullable private Boolean enableSessionReplay; @@ -20,9 +20,9 @@ public class SetupOptions { @Nullable private SessionReplayOptions sessionReplayConfig; - public SetupOptions(@NonNull String apiKey, @NonNull String host) { + public SetupOptions(@NonNull String apiKey, @NonNull String apiHost) { this.apiKey = apiKey; - this.host = host; + this.apiHost = apiHost; } @NonNull @@ -31,8 +31,8 @@ public String getApiKey() { } @NonNull - public String getHost() { - return host; + public String getApiHost() { + return apiHost; } public boolean getEnableSessionReplay() { diff --git a/packages/posthog/ios/Plugin/Classes/Options/SetupOptions.swift b/packages/posthog/ios/Plugin/Classes/Options/SetupOptions.swift index 033abb83b..92e5020cb 100644 --- a/packages/posthog/ios/Plugin/Classes/Options/SetupOptions.swift +++ b/packages/posthog/ios/Plugin/Classes/Options/SetupOptions.swift @@ -2,14 +2,14 @@ import Foundation @objc public class SetupOptions: NSObject { private var apiKey: String - private var host: String + private var apiHost: String private var enableSessionReplay: Bool private var optOut: Bool private var sessionReplayConfig: SessionReplayOptions? - init(apiKey: String, host: String, enableSessionReplay: Bool, optOut: Bool, sessionReplayConfig: [String: Any]?) { + init(apiKey: String, apiHost: String, enableSessionReplay: Bool, optOut: Bool, sessionReplayConfig: [String: Any]?) { self.apiKey = apiKey - self.host = host + self.apiHost = apiHost self.enableSessionReplay = enableSessionReplay self.optOut = optOut @@ -29,8 +29,8 @@ import Foundation return apiKey } - func getHost() -> String { - return host + func getApiHost() -> String { + return apiHost } func getEnableSessionReplay() -> Bool { diff --git a/packages/posthog/ios/Plugin/Posthog.swift b/packages/posthog/ios/Plugin/Posthog.swift index 3edc240e8..f4488117c 100644 --- a/packages/posthog/ios/Plugin/Posthog.swift +++ b/packages/posthog/ios/Plugin/Posthog.swift @@ -2,15 +2,10 @@ import Foundation import PostHog @objc public class Posthog: NSObject { - private let config: PosthogConfig - private let plugin: PosthogPlugin - - init(config: PosthogConfig, plugin: PosthogPlugin) { - self.config = config - self.plugin = plugin + init(config: PosthogConfig) { super.init() if let apiKey = config.apiKey { - self.setup(apiKey: apiKey, host: config.host, enableSessionReplay: config.enableSessionReplay, sessionReplayConfig: config.sessionReplayConfig) + self.setup(apiKey: apiKey, apiHost: config.apiHost, enableSessionReplay: config.enableSessionReplay, sessionReplayConfig: config.sessionReplayConfig) // Start session recording if configured if config.enableSessionReplay { @@ -115,12 +110,12 @@ import PostHog @objc public func setup(_ options: SetupOptions) { let apiKey = options.getApiKey() - let host = options.getHost() + let apiHost = options.getApiHost() let enableSessionReplay = options.getEnableSessionReplay() let optOut = options.getOptOut() let sessionReplayConfig = options.getSessionReplayConfig() - setup(apiKey: apiKey, host: host, enableSessionReplay: enableSessionReplay, optOut: optOut, sessionReplayConfig: sessionReplayConfig) + setup(apiKey: apiKey, apiHost: apiHost, enableSessionReplay: enableSessionReplay, optOut: optOut, sessionReplayConfig: sessionReplayConfig) } @objc public func startSessionRecording() { @@ -131,8 +126,8 @@ import PostHog PostHogSDK.shared.stopSessionRecording() } - private func setup(apiKey: String, host: String, enableSessionReplay: Bool = false, optOut: Bool = false, sessionReplayConfig: SessionReplayOptions? = nil) { - let config = PostHogConfig(apiKey: apiKey, host: host) + private func setup(apiKey: String, apiHost: String, enableSessionReplay: Bool = false, optOut: Bool = false, sessionReplayConfig: SessionReplayOptions? = nil) { + let config = PostHogConfig(apiKey: apiKey, host: apiHost) config.captureScreenViews = false config.optOut = optOut config.sessionReplay = enableSessionReplay diff --git a/packages/posthog/ios/Plugin/PosthogConfig.swift b/packages/posthog/ios/Plugin/PosthogConfig.swift index eebb5f248..7db83385d 100644 --- a/packages/posthog/ios/Plugin/PosthogConfig.swift +++ b/packages/posthog/ios/Plugin/PosthogConfig.swift @@ -2,7 +2,7 @@ import Foundation public struct PosthogConfig { var apiKey: String? - var host = "https://us.i.posthog.com" + var apiHost = "https://us.i.posthog.com" var enableSessionReplay = false var sessionReplayConfig: SessionReplayOptions? } diff --git a/packages/posthog/ios/Plugin/PosthogPlugin.swift b/packages/posthog/ios/Plugin/PosthogPlugin.swift index 410548bed..b1b9cdc3b 100644 --- a/packages/posthog/ios/Plugin/PosthogPlugin.swift +++ b/packages/posthog/ios/Plugin/PosthogPlugin.swift @@ -37,7 +37,7 @@ public class PosthogPlugin: CAPPlugin, CAPBridgedPlugin { private var implementation: Posthog? override public func load() { - self.implementation = Posthog(config: posthogConfig(), plugin: self) + self.implementation = Posthog(config: posthogConfig()) } @objc func alias(_ call: CAPPluginCall) { @@ -202,12 +202,12 @@ public class PosthogPlugin: CAPPlugin, CAPBridgedPlugin { call.reject(CustomError.apiKeyMissing.localizedDescription) return } - let host = call.getString("host", "https://us.i.posthog.com") + let apiHost = getApiHost(apiHost: call.getString("apiHost"), host: call.getString("host")) let enableSessionReplay = call.getBool("enableSessionReplay", false) let optOut = call.getBool("optOut", false) let sessionReplayConfig = call.getObject("sessionReplayConfig") - let options = SetupOptions(apiKey: apiKey, host: host, enableSessionReplay: enableSessionReplay, optOut: optOut, sessionReplayConfig: sessionReplayConfig) + let options = SetupOptions(apiKey: apiKey, apiHost: apiHost, enableSessionReplay: enableSessionReplay, optOut: optOut, sessionReplayConfig: sessionReplayConfig) implementation?.setup(options) call.resolve() @@ -239,7 +239,7 @@ public class PosthogPlugin: CAPPlugin, CAPBridgedPlugin { var config = PosthogConfig() config.apiKey = getConfig().getString("apiKey", config.apiKey) - config.host = getConfig().getString("host") ?? config.host + config.apiHost = getApiHost(apiHost: getConfig().getString("apiHost"), host: getConfig().getString("host"), defaultValue: config.apiHost) config.enableSessionReplay = getConfig().getBoolean("enableSessionReplay", config.enableSessionReplay) if let sessionReplayConfigDict = getConfig().getObject("sessionReplayConfig") as? [String: Any] { @@ -256,6 +256,22 @@ public class PosthogPlugin: CAPPlugin, CAPBridgedPlugin { return config } + private func getApiHost(apiHost: String?, host: String?, defaultValue: String = "https://us.i.posthog.com") -> String { + if let apiHost { + if let host, host != apiHost { + CAPLog.print("[", PosthogPlugin.tag, "] Both apiHost and host are set. Using apiHost.") + } + return apiHost + } + + if let host { + CAPLog.print("[", PosthogPlugin.tag, "] host is deprecated. Use apiHost instead.") + return host + } + + return defaultValue + } + private func rejectCall(_ call: CAPPluginCall, _ error: Error) { CAPLog.print("[", PosthogPlugin.tag, "] ", error) call.reject(error.localizedDescription) diff --git a/packages/posthog/package.json b/packages/posthog/package.json index d7d72ecae..3eea4aeb1 100644 --- a/packages/posthog/package.json +++ b/packages/posthog/package.json @@ -1,6 +1,6 @@ { "name": "@capawesome/capacitor-posthog", - "version": "8.2.1", + "version": "8.3.0", "description": "Unofficial Capacitor plugin for PostHog SDK.", "main": "dist/plugin.cjs.js", "module": "dist/esm/index.js", diff --git a/packages/posthog/src/definitions.ts b/packages/posthog/src/definitions.ts index 29f8808b5..ce4673c04 100644 --- a/packages/posthog/src/definitions.ts +++ b/packages/posthog/src/definitions.ts @@ -11,13 +11,33 @@ declare module '@capacitor/cli' { */ apiKey?: string; /** - * The host of your PostHog instance. + * The API host of your PostHog instance or reverse proxy. + * + * @since 8.3.0 + * @default 'https://us.i.posthog.com' + * @example 'https://eu.i.posthog.com' + */ + apiHost?: string; + /** + * The API host of your PostHog instance. + * + * Deprecated alias for `apiHost`. * * @since 7.1.0 * @default 'https://us.i.posthog.com' * @example 'https://eu.i.posthog.com' + * @deprecated Use `apiHost` instead. */ host?: string; + /** + * The PostHog UI host used when `apiHost` points to a reverse proxy. + * + * Only available on Web. + * + * @since 8.3.0 + * @example 'https://eu.posthog.com' + */ + uiHost?: string; /** * Whether to enable session recording automatically. * @@ -385,6 +405,36 @@ export interface SetupOptions { * @example 'phc_g8wMenebiIQ1pYd5v9Vy7oakn6MczVKIsNG5ZHCspdy' */ apiKey: string; + /** + * The API host of your PostHog instance or reverse proxy. + * + * If both `apiHost` and `host` are provided, `apiHost` takes precedence. + * + * @since 8.3.0 + * @default 'https://us.i.posthog.com' + * @example 'https://eu.i.posthog.com' + */ + apiHost?: string; + /** + * The API host of your PostHog instance. + * + * Deprecated alias for `apiHost`. + * + * @since 6.0.0 + * @default 'https://us.i.posthog.com' + * @example 'https://eu.i.posthog.com' + * @deprecated Use `apiHost` instead. + */ + host?: string; + /** + * The PostHog UI host used when `apiHost` points to a reverse proxy. + * + * Only available on Web. + * + * @since 8.3.0 + * @example 'https://eu.posthog.com' + */ + uiHost?: string; /** * Cookieless tracking mode. * @@ -404,14 +454,6 @@ export interface SetupOptions { * @default false */ enableSessionReplay?: boolean; - /** - * The host of your PostHog instance. - * - * @since 6.0.0 - * @default 'https://us.i.posthog.com' - * @example 'https://eu.i.posthog.com' - */ - host?: string; /** * Whether to opt out of capturing by default. * diff --git a/packages/posthog/src/web.ts b/packages/posthog/src/web.ts index 33f724f5d..7e14d8dde 100644 --- a/packages/posthog/src/web.ts +++ b/packages/posthog/src/web.ts @@ -94,17 +94,22 @@ export class PosthogWeb extends WebPlugin implements PosthogPlugin { } async screen(_options: ScreenOptions): Promise { + void _options; this.throwUnimplementedError(); } async setup(options: SetupOptions): Promise { - const host = options.host || 'https://us.i.posthog.com'; + const apiHost = this.getApiHost(options.apiHost, options.host); const config: Partial & { cookieless_mode?: 'always' | 'on_reject'; } = { - api_host: host, + api_host: apiHost, }; + if (options.uiHost) { + config.ui_host = options.uiHost; + } + if (options.optOut) { config.opt_out_capturing_by_default = true; } @@ -144,4 +149,20 @@ export class PosthogWeb extends WebPlugin implements PosthogPlugin { private throwUnimplementedError(): never { throw this.unimplemented('Not implemented on web.'); } + + private getApiHost(apiHost?: string, host?: string): string { + if (apiHost) { + if (host && host !== apiHost) { + console.warn('[Posthog] Both apiHost and host are set. Using apiHost.'); + } + return apiHost; + } + + if (host) { + console.warn('[Posthog] host is deprecated. Use apiHost instead.'); + return host; + } + + return 'https://us.i.posthog.com'; + } } diff --git a/packages/printer/README.md b/packages/printer/README.md index 6a15d6dea..85758b35e 100644 --- a/packages/printer/README.md +++ b/packages/printer/README.md @@ -26,6 +26,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -59,9 +63,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-printer` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-printer npx cap sync ``` diff --git a/packages/purchases/README.md b/packages/purchases/README.md index 461ea1441..8a4454dae 100644 --- a/packages/purchases/README.md +++ b/packages/purchases/README.md @@ -23,6 +23,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll add it for you! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -35,7 +39,7 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation -This plugin is only available to [Capawesome Insiders](https://capawesome.io/sponsors/insiders/). +This plugin is only available to [Capawesome Insiders](https://capawesome.io/insiders/). First, make sure you have the Capawesome npm registry set up. You can do this by running the following commands: @@ -44,11 +48,24 @@ npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken ``` -**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/sponsors/insiders/). +**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). + +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` -Next, install the package: +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-purchases` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-purchases npx cap sync ``` diff --git a/packages/realtimekit/README.md b/packages/realtimekit/README.md index 3c2080fdf..fd58e9c70 100644 --- a/packages/realtimekit/README.md +++ b/packages/realtimekit/README.md @@ -2,6 +2,10 @@ Unofficial Capacitor plugin for using the [RealtimeKit SDK](https://docs.realtime.cloudflare.com/).[^1] +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -11,6 +15,21 @@ Unofficial Capacitor plugin for using the [RealtimeKit SDK](https://docs.realtim ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-realtimekit` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-realtimekit npx cap sync diff --git a/packages/screen-orientation/README.md b/packages/screen-orientation/README.md index 66a136069..02bb5537b 100644 --- a/packages/screen-orientation/README.md +++ b/packages/screen-orientation/README.md @@ -39,6 +39,21 @@ Stay up to date with the latest news and updates about the Capawesome, Capacitor ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-screen-orientation` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-screen-orientation npx cap sync diff --git a/packages/screenshot/README.md b/packages/screenshot/README.md index c6d91dd6f..b9781e2d6 100644 --- a/packages/screenshot/README.md +++ b/packages/screenshot/README.md @@ -32,7 +32,20 @@ Stay up to date with the latest news and updates about the Capawesome, Capacitor ## Installation -Install the plugin: +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-screenshot` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands: ```bash npm install @capawesome/capacitor-screenshot diff --git a/packages/secure-preferences/README.md b/packages/secure-preferences/README.md index 52e0072a0..5bc9c265f 100644 --- a/packages/secure-preferences/README.md +++ b/packages/secure-preferences/README.md @@ -23,6 +23,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -49,9 +53,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-secure-preferences` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-secure-preferences npx cap sync ``` diff --git a/packages/share-target/README.md b/packages/share-target/README.md index eb848b2c1..2afc79cc1 100644 --- a/packages/share-target/README.md +++ b/packages/share-target/README.md @@ -23,6 +23,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -51,9 +55,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-share-target` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-share-target npx cap sync ``` diff --git a/packages/speech-recognition/README.md b/packages/speech-recognition/README.md index 7d0c5421b..c3c2eac66 100644 --- a/packages/speech-recognition/README.md +++ b/packages/speech-recognition/README.md @@ -28,6 +28,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -53,9 +57,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-speech-recognition` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-speech-recognition npx cap sync ``` diff --git a/packages/speech-synthesis/README.md b/packages/speech-synthesis/README.md index f568a7182..28408bd82 100644 --- a/packages/speech-synthesis/README.md +++ b/packages/speech-synthesis/README.md @@ -29,6 +29,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -50,9 +54,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-speech-synthesis` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-speech-synthesis npx cap sync ``` diff --git a/packages/sqlite/README.md b/packages/sqlite/README.md index bd88caaa8..37ab3e7bf 100644 --- a/packages/sqlite/README.md +++ b/packages/sqlite/README.md @@ -36,6 +36,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll add it for you! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -57,7 +61,7 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation -This plugin is only available to [Capawesome Insiders](https://capawesome.io/sponsors/insiders/). +This plugin is only available to [Capawesome Insiders](https://capawesome.io/insiders/). First, make sure you have the Capawesome npm registry set up. You can do this by running the following commands: @@ -66,11 +70,24 @@ npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken ``` -**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/sponsors/insiders/). +**Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). + +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` -Next, install the package: +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-sqlite` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-sqlite @sqlite.org/sqlite-wasm npx cap sync ``` diff --git a/packages/square-mobile-payments/README.md b/packages/square-mobile-payments/README.md index 422009e64..d594bc34a 100644 --- a/packages/square-mobile-payments/README.md +++ b/packages/square-mobile-payments/README.md @@ -25,6 +25,10 @@ This plugin provides a comprehensive integration with Square's Mobile Payments S Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -33,6 +37,21 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-square-mobile-payments` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-square-mobile-payments npx cap sync diff --git a/packages/superwall/README.md b/packages/superwall/README.md index 04b88a2da..78bd9f72d 100644 --- a/packages/superwall/README.md +++ b/packages/superwall/README.md @@ -24,6 +24,10 @@ We are proud to offer a comprehensive Capacitor plugin for Superwall SDK integra Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -32,6 +36,21 @@ Missing a feature? Just [open an issue](https://github.com/capawesome-team/capac ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-superwall` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-superwall npx cap sync diff --git a/packages/torch/README.md b/packages/torch/README.md index 430f98290..63cfc0f7a 100644 --- a/packages/torch/README.md +++ b/packages/torch/README.md @@ -32,6 +32,21 @@ Stay up to date with the latest news and updates about the Capawesome, Capacitor ## Installation +You can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: + +``` + Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-torch` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + ```bash npm install @capawesome/capacitor-torch npx cap sync diff --git a/packages/wifi/README.md b/packages/wifi/README.md index fa16b5de3..323032355 100644 --- a/packages/wifi/README.md +++ b/packages/wifi/README.md @@ -22,6 +22,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -48,9 +52,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-wifi` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-wifi npx cap sync ``` diff --git a/packages/zip/README.md b/packages/zip/README.md index 7762d9753..6097a1d2a 100644 --- a/packages/zip/README.md +++ b/packages/zip/README.md @@ -23,6 +23,10 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll add it for you! +## Newsletter + +Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/). + ## Compatibility | Plugin Version | Capacitor Version | Status | @@ -48,9 +52,22 @@ npm config set //npm.registry.capawesome.io/:_authToken **Attention**: Replace `` with the license key you received from Polar. If you don't have a license key yet, you can get one by becoming a [Capawesome Insider](https://capawesome.io/insiders/). -Next, install the package: +Next, you can use our **AI-Assisted Setup** to install the plugin. +Add the Capawesome Skills to your AI tool using the following command: + +```bash +npx skills add capawesome-team/skills +``` + +Then use the following prompt: ``` +Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-zip` plugin in my project. +``` + +If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below: + +```bash npm install @capawesome-team/capacitor-zip npx cap sync ```