Cordova Community Plugins
Apache Cordova is an open source native runtime that allows developers to build native mobile apps with HTML, CSS, and JavaScript. Similar to Capacitor, Ionic’s own native runtime, Cordova allows developers to access native device features, such as camera, keyboard, and geolocation, using a system of plugins. A plugin is a small amount of add-on code that provides JavaScript interface to native components. They allow your app to use native device capabilities beyond what is available to pure web apps.
For developers using Ionic with Cordova, our team has developed a collection of TypeScript wrappers for open source Cordova plugins that make it easy to add native functionality to any Ionic app. See Ionic Native.
These plugins are submitted and maintained by the Ionic community. While community members are generally quick to find and fix issues, certain plugins may not function properly.
For professional developers and teams that require dedicated native plugin support & SLAs, ongoing maintenance, and security patches, please explore our premium options, including plugin support and pre-built solutions for common native use cases.
These docs are for apps built with Ionic Framework 4.0.0 and greater. For older Ionic v3 projects, please see here.
#
Capacitor SupportIn addition to Cordova, Ionic Native also works with Capacitor, Ionic's official native runtime. Basic usage below. For complete details, see the Capacitor documentation.
#
UsageAll plugins have two components - the native code (Cordova) and the TypeScript code (Ionic Native).
Cordova plugins are also wrapped in a Promise
or Observable
in order to provide a common plugin interface and modernized development approach.
Using the Camera plugin as an example, first install it:
- Cordova
- Capacitor
For complete details, see the Capacitor documentation.
Next, begin using the plugin, following the various framework usage options below. For FAQ, see here.
#
AngularAngular apps can use either Cordova or Capacitor to build native mobile apps. Import the plugin in a @NgModule
and add it to the list of Providers. For Angular, the import path should end with /ngx
. Angular's change detection is automatically handled.
After the plugin has been declared, it can be imported and injected like any other service:
#
ReactReact apps must use Capacitor to build native mobile apps. However, Ionic Native (and therefore, Cordova plugins) can still be used.
Import the plugin object then use its static methods:
#
Vanilla JavaScriptVanilla JavaScript apps, targeting ES2015+ and/or TypeScript, can use either Cordova or Capacitor to build native mobile apps. To use any plugin, import the class from the appropriate package and use its static methods: