In-App Messages


Prerequisites & Dependencies

Before integrating the indigitall-inapp-capacitor-plugin into your Capacitor application, please ensure your development environment and project meet the following system and library requirements.

1. Environment & Compatibility (Version 4.0.0 or above)

JavaScript / TypeScript

  • Node.js: 18 or higher.
  • TypeScript: ~5.3.0 or higher.
  • Capacitor Core: >= 8.0.0 (required peer dependency).
  • ES Target: The plugin is compiled targeting ES2017 and ships both ESM (dist/esm/) and CJS (dist/plugin.cjs.js) bundles.

Android

  • Minimum Android SDK (minSdkVersion): API level 23 (Android 5.0 Marsmallow) or higher.
  • Target Android SDK (targetSdkVersion): API level 36 (Android 16).
  • Java Version: Java 17 (JavaVersion.VERSION_17) is required to compile the Android bridge layer.
  • AndroidX: Your project must be migrated to AndroidX (Jetpack). Both android.useAndroidX and android.enableJetifier must be enabled.

iOS

  • Minimum iOS Version: 15.0 or higher.
  • Swift Version: Swift 5.9 or higher.
  • Xcode: Compatible with the Swift 5.9 toolchain (Xcode 15+).
  • CocoaPods: Required to resolve native iOS dependencies via the provided .podspec.

2. Core Dependencies

npm / JavaScript

PackageVersionTypeDescription
@capacitor/core>= 8.0.0peerCapacitor runtime required to bridge JS and native layers

Android (Gradle)

The plugin's android/build.gradle declares the following runtime dependencies:

ArtifactVersionDescription
androidx.appcompat:appcompat1.4.2Backward compatibility support for Android UI components
androidx.cardview:cardview1.0.0Material card view component used by in-app rendering
com.indigitall:android-inapp6.0.+Indigitall In-App messaging module for campaign rendering
com.indigitall:android-commons6.0.+Indigitall shared utilities, core network logic, and persistence

Note: Unlike the main indigitall-capacitor-plugin, this plugin imports only the android-inapp and android-commons modules directly, without pulling in Push, Inbox, LiveActivity, or Customer modules.

iOS (CocoaPods)

The plugin's IndigitallInappCapacitorPlugin.podspec declares the following dependencies:

PodVersionDescription
Capacitor(any)Capacitor native iOS bridge
indigitall-ios-inapp~> 6.21.0Indigitall native iOS In-App SDK for campaign rendering

3. Included Components

This plugin provides a focused integration of the Indigitall In-App messaging system. The following native modules are included:

ModuleArtifact IDFunctional Description
In-Appandroid-inappRendering of In-App messaging campaigns, custom banners, and overlays
Commonsandroid-commonsShared internal utilities, core network logic, and local persistence

Not included: Push, Inbox, LiveActivity, and Customer modules are not part of this plugin. Use indigitall-capacitor-plugin for full-stack integration or the corresponding dedicated plugins for each feature.


4. Development Dependencies

These packages are required only during plugin development and are not bundled into the final output:

PackageVersionDescription
@capacitor/android^8.0.0Android platform for local development and testing
@capacitor/ios^8.0.0iOS platform for local development and testing
@capacitor/docgen^0.3.0Automatic API documentation generation from TypeScript
typescript~5.3.0TypeScript compiler
rollup^4.0.0Module bundler for ESM and CJS output
eslint^8.0.0JavaScript/TypeScript linter
prettier^2.8.8Code formatter
rimraf^5.0.0Cross-platform rm -rf for the clean script
swiftlint^1.0.1Swift code linter for iOS source files

5. Integration Snippet

Add the following to your application-level gradle.properties to ensure AndroidX compatibility required by the plugin:

# android/gradle.properties
android.useAndroidX=true
android.enableJetifier=true

And ensure your app-level build.gradle targets the required SDK versions:

// android/app/build.gradle
android {
    compileSdkVersion 35
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 35
    }
   
}

For iOS, add the pod dependency to your Podfile (Capacitor handles this automatically via the .podspec):

# ios/App/Podfile
pod 'IndigitallInappCapacitorPlugin', :path => '../node_modules/indigitall-inapp-capacitor-plugin'