Changes:
- added confirmationRequired param to show method to options
- moved plugin errors to a separate enum
- changes some plugin method return values
* chore(deps): bump angular and typescript
- required to enable ivy output & partial compilation mode
* chore(build): enable ivy output & partial compilation mode
- change ngx builds to use ivy
- remove some code that is no longer required with ivy
* add set zoom for Dynamsoft Barcode Scanner
* update Dynamsoft Barcode Scanner to add setFocus
* feat: add rotate scan option and rotation frame result to Dynamsoft Barcode Scanner
* add comments and rename the rotation result for Dynamsoft Barcode Scanner
Added new POST_NOTIFICATIONS, READ_MEDIA_AUDIO, READ_MEDIA_IMAGES, and READ_MEDIA_VIDEO permissions. Adding missing Bluetooth permissions for advertise, connect, and scan.
The Bluetooth permissions are already present in the underlying Cordova plugin. The Android 13 permissions have been submitted to the underlying Cordova plugin as a pull request so may not be present there yet, but match the pull request and the actual underlying permission names found in Android 13.
`useTouchID` is not an optional parameter. When it is not explicitly set, the whole app crashes with this error:
> Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull boolValue]: unrecognized selector sent to instance 0x111f02f08'
This bug is known since November 2018 and likely won't be fixed: https://github.com/ionic-team/cordova-plugin-ios-keychain/issues/34
* feat(urbanairship): Add attributes editing and fix tag editing
* feat(urbanairship): Update for urbanairship 14.0
Co-authored-by: Christian von Rohr <christian.vonrohr@well.ch>
"this.emailComposer.hasClient()" and "this.emailComposer.isAvailable()" method usage is wrong on the official documentation. Please check.
.hasClient and .isAvailable both requires an app name string as the parameter, and they return promises.
The original code of putting the parameter "app" into the "then()" chainable is not correct, as the "then()" only accepts callback functions as parameters.
Tested and proved in visual studio code.
* add chooser actual fork plugin
* * removes base64 functionality as we can use ionic native file plugin to get file directly
* use getFiles
Co-authored-by: Pronin Andrey <a@innoline.pro>
* feat(unvired-cordova-sdk): support login via email
* fix(unvired-cordova-sdk): return typed promise object for user settings
* fix(unvired-cordova-sdk): change return type to string for guid()
* doc(unvired-cordova-sdk): doc update
* doc(unvired-cordova-sdk): update doc
* feat(unvired-cordova-sdk): add support for metadata JSON
* doc(unvired-cordova-sdk): update doc
* doc(unvired-cordova-sdk): update doc
* feat(unvired-cordova-sdk): add methods to get and set log level
* fix(unvired-cordova-sdk): update the return type for getLog()
* feat(unvired-cordova-sdk): return platform name
* feat(unvired-cordova-sdk): add method to get log file path
* feat(unvired-cordova-sdk): test push notifications
* fix(unvired-cordova-sdk): define return for logRead
* doc(unvired-cordova-sdk): remove mobile only restriction for some apis
* feat(unvired-cordova-sdk): add new property containing HTTP status code.
* feat(unvired-cordova-sdk): add new functions to lock & unlock sending of data
* fix(unvired-cordova-sdk): update the return type for lock and unlock functions.
* fix(unvired-cordova-sdk): change the return type for lockDataSender api
* fix(unvired-cordova-sdk): fix the data type for ResultType and OutboxLockStatus
* doc(unvired-cordova-sdk): Update doc
* doc(unvired-cordova-sdk): Update doc
* feat(unvired-cordova-sdk): Added new notification type
* feat(unvired-cordova-sdk): delete outbox item based on lid
* fix(unvired-cordova-sdk): Update doc
* doc(unvired-cordova-sdk): Update doc for userSettings()
* feat(unvired-cordova-sdk): add new discovery api
* fix(unvired-cordova-sdk): rename the property
* doc(unvired-cordova-sdk): Doc update
* fix(unvired-cordova-sdk): Update the return type for startDiscoveryService api
* doc(unvired-cordova-sdk): Rename the loginParameter languageCode to loginLanguage.
* changes after doing npm install
* feat(unvired-cordova-sdk): Add a new login parameter to send jwt options.
* feat(unvired-cordova-sdk): add new function to cache website data
* feat(unvired-cordova-sdk): new function to export the database for browser platform
* fix(unvired-cordova-sdk): fix method names
* feat(unvired-cordova-sdk): add new function 'setClientCredentials'
* doc(unvired-cordova-sdk): Update doc
* fix(unvired-cordova-sdk): Create a new Credential object and pass that as an input to the setClientCredentials() function.
* fix(unvired-cordova-sdk): Fix the typo in the function parameter.
* fix(unvired-cordova-sdk): Changed the type of port to string.
* feat(unvired-cordova-sdk): add methods to encrypt and decrypt the string.
* Delete package-lock.json
removed the package-locj.json from the PR
* Update package-lock.json
fix(unvired-cordova-sdk): Update package-lock.json corresponding to version 5.35.0
* doc(unvired-cordova-sdk) Updated document for the new function
Co-authored-by: Srinidhi Anand Rao <srinidhi.rao@unvired.io>
* add new methods
* feat(preview-any-file): new methods to preview or open files from url, path, assets or base64
* REVERT CHANGES
* feat(preview-any-file): new methods to preview or open files from url, path, assets or base64
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or https://ionicworldwide.herokuapp.com/
- [ ] bug report
- [ ] feature request
- [ ] support request => Please do not submit support requests here, use the discussions section https://github.com/danielsogl/awesome-cordova-plugins/discussions
@@ -6,50 +6,44 @@ This is a short guide on creating new plugin wrappers for Ionic Native.
First, let's start by creating a new plugin wrapper from template.
```
// Call this command, and replace PluginName with the name of the plugin you wish to add
// Make sure to capitalize the first letter, or use CamelCase if necessary.
// Call this command, and replace PluginName with the name of the plugin you wish to add
// Make sure to capitalize the first letter, or use CamelCase if necessary.
gulp plugin:create -n PluginName
gulp plugin:create -n PluginName
// add -m flag to get a minimal template to start with
gulp plugin:create -m -n PluginName
```
// add -m flag to get a minimal template to start with
gulp plugin:create -m -n PluginName
Running the command above will create a new directory `src/@ionic-native/plugins/plugin-name/` with a single file in there: `index.ts`. This file is where all the plugin definitions should be.
Let's take a look at the existing plugin wrapper for Geolocation to see what goes into an Ionic Native plugin (comments have been removed for clarity):
It's just a stub. The `return` is only there to keep the TypeScript type-checker from complaining since we indicate that `getCurrentPosition` returns a `Promise<Geoposition>`.
@@ -89,14 +79,12 @@ By default, the `@Cordova` decorator wraps the plugin callbacks in a Promise tha
The `@Cordova` decorator has a few more options now.
@@ -129,12 +117,19 @@ We have very precise rules over how our git commit messages can be formatted. Th
Must be one of the following:
- **fix**: A bug fix
- **feat**: A new feature
- **docs**: Documentation only changes
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **perf**: A code change that improves performance
- **test**: Adding missing tests
- **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation
#### Scope
@@ -146,8 +141,11 @@ The scope could be anything specifying place of the commit change. For example,
The subject contains succinct description of the change:
- use the imperative, present tense: "change" not "changed" nor "changes"
- do not capitalize first letter
- do not place a period (.) at the end
- entire length of the commit message must not go over 50 characters
### Ionic Native Decorators
@@ -157,10 +155,15 @@ The subject contains succinct description of the change:
A decorator to wrap the main plugin class, and any other classes that will use `@Cordova` or `@CordovaProperty` decorators. This decorator accepts the following configuration:
- _pluginName_: Plugin name, this should match the class name
- _plugin_: The plugin's NPM package, or Github URL if NPM is not available.
- _pluginRef_: The plugin object reference. Example: 'cordova.file'.
- _repo_: The plugin's Github Repository URL
- _install_: (optional) Install command. This is used in case a plugin has a custom install command (takes variables).
- _platforms_: An array of strings indicating the supported platforms.
#### Cordova
@@ -168,20 +171,35 @@ A decorator to wrap the main plugin class, and any other classes that will use `
Checks if the plugin and the method are available before executing. By default, the decorator will wrap the callbacks of the function and return a Promise. This decorator takes the following configuration options:
- **observable**: set to true to return an Observable
- **methodName**: an optional name of the cordova plugins method name (if different from wrappers method name)
- **clearFunction**: an optional name of a method to clear the observable we returned
- **clearWithArgs**: This can be used if clearFunction is set. Set this to true to call the clearFunction with the same arguments used in the initial function.
- **sync**: set to true if the method should return the value as-is without wrapping with Observable/Promise
- **callbackOrder**: set to `reverse` if the success and error callbacks are the first two arguements of the method
- **callbackStyle**: set to `node` if the plugin has one callback with a node style (e.g: `function(err, result){}`), or set to `object` if the callbacks are part of an object
- **successName**: Success function property name. This must be set if callbackStyle is set to object.
- **errorName**: Error function property name. This must be set if callbackStyle is set to object.
- **successIndex**: Set a custom index for the success callback function. This doesn't work if callbackOrder or callbackStyle are set.
- **errorIndex**: Set a custom index for the error callback function. This doesn't work if callbackOrder or callbackStyle are set.
- **eventObservable**: set to true to return an observable that wraps an event listener
- **event**: Event name, this must be set if eventObservable is set to true
- **element**: Element to attach the event listener to, this is optional, defaults to `window`
- **otherPromise**: Set to true if the wrapped method returns a promise
- **platforms**: array of strings indicating supported platforms. Specify this if the supported platforms doesn't match the plugin's supported platforms.
Example:
@@ -210,6 +228,7 @@ someProperty: string;
Checks if the plugin exists before performing a custom written method. By default, the method will return a promise that will reject with an error if the plugin is not available. This wrapper accepts two optional configurations:
- **observable**: set to true to return an empty Observable if the plugin isn't available
- **sync**: set to true to return nothing if the plugin isn't available
Ionic Native is a curated set of wrappers for Cordova plugins that make adding any native functionality you need to your [Ionic](https://ionicframework.com/) mobile app easy.
Awesome Cordova Plugins is a curated set of wrappers for Cordova plugins that make adding any native functionality you need to your [Ionic](https://ionicframework.com/) mobile app easy.
Ionic Native wraps plugin callbacks in a Promise or Observable, providing a common interface for all plugins and making it easy to use plugins with Angular change detection.
Awesome Cordova Plugins wraps plugin callbacks in a Promise or Observable, providing a common interface for all plugins and making it easy to use plugins with Angular change detection.
Ionic Native is available in two versions:
1. Ionic Native [Community Edition](https://ionicframework.com/docs/native/community), featuring open source, community-maintained Cordova and Capacitor plugins and APIs.
2. Ionic Native [Enterprise Edition](https://ionicframework.com/docs/enterprise), featuring a library of Premier plugins and solutions that are fully supported and maintained by the Ionic team, with access to Ionic experts and a guaranteed response SLA to mission-critical app development.
To learn more about the reasons why Ionic Native was renamed to Awesome Cordova Plugins, read the official [Ionic blog](https://ionicframework.com/blog/a-new-chapter-for-ionic-native/) post by Max Lyncht.
## Capacitor Support
In addition to Cordova, Ionic Native also works with [Capacitor](https://capacitor.ionicframework.com), Ionic's official native runtime. Basic usage below. For complete details, [see the Capacitor documentation](https://capacitor.ionicframework.com/docs/cordova/using-cordova-plugins).
In addition to Cordova, Awesome Cordova Plugins also works with [Capacitor](https://capacitorjs.com), Ionic's official native runtime. Basic usage below. For complete details, [see the Capacitor documentation](https://capacitorjs.com/docs/v2/cordova/using-cordova-plugins).
## Installation
Run following command to install Ionic Native in your project.
Run following command to install Awesome Cordova Plugins in your project.
```bash
npm install @ionic-native/core --save
npm install @awesome-cordova-plugins/core --save
```
You also need to install the Ionic Native package for each plugin you want to add. Please see the [Ionic Native documentation](https://ionicframework.com/docs/native/) for complete instructions on how to add and use the plugins.
You also need to install the Awesome Cordova Plugins package for each plugin you want to add. Please see the [Awesome Cordova Plugins documentation](https://ionicframework.com/docs/native/) for complete instructions on how to add and use the plugins.
## Documentation
For the full Ionic Native documentation, please visit [https://ionicframework.com/docs/native/](https://ionicframework.com/docs/native/).
For the full Awesome Cordova Plugins documentation, please visit <https://ionicframework.com/docs/native/>.
### Basic Usage
@@ -37,7 +35,7 @@ Make sure to import the injectable class from the `/ngx` directory as shown in t
These modules can work in any ES2015+/TypeScript app (including Angular/Ionic apps). To use any plugin, import the class from the appropriate package, and use it's static methods.
@@ -187,14 +190,14 @@ document.addEventListener('deviceready', function () {
### Mocking and Browser Development (Ionic/Angular apps only)
Ionic Native makes it possible to mock plugins and develop nearly the entirety of your app in the browser or in `ionic serve`.
Awesome Cordova Plugins makes it possible to mock plugins and develop nearly the entirety of your app in the browser or in `ionic serve`.
To do this, you need to provide a mock implementation of the plugins you wish to use. Here's an example of mocking the `Camera` plugin to return a stock image while in development:
First import the `Camera` class in your `src/app/app.module.ts` file:
Spent way too long diagnosing an issue only to realize a plugin wasn't firing or installed? Ionic Native lets you know what the issue is and how you can resolve it.
Spent way too long diagnosing an issue only to realize a plugin wasn't firing or installed? Awesome Cordova Plugins lets you know what the issue is and how you can resolve it.
Let us know or submit a PR! Take a look at [the Developer Guide](https://github.com/ionic-team/ionic-native/blob/master/DEVELOPER.md) for more on how to contribute. :heart:
Let us know or submit a PR! Take a look at [the Developer Guide](https://github.com/danielsogl/awesome-cordova-plugins/blob/master/DEVELOPER.md) for more on how to contribute. ❤️
**1\) Use the** [**Ionic CLI**](https://ionicframework.com/docs/cli) **to add/update/delete plugins.**
Instead of directly editing `config.xml` and `package.json`. Use `ionic` in front of Cordova commands for a better experience and additional functionality \(`ionic cordova build ios` instead of `cordova build ios`\).
**2\) Upgrade plugins by removing, then re-adding them.**
**4\) Restore Cordova in an existing Ionic project**
Useful when adding new developers to a project. `ionic cordova prepare` restores platforms and plugins from `package.json` and `config.xml`. The version to be installed is taken from `package.json` or `config.xml`, if found in those files. In case of conflicts, `package.json` is given precedence over `config.xml`.
**5\) Troubleshoot Cordova issues with Ionic CLI commands**
*`ionic doctor list`: Detects [common issues](https://ionicframework.com/docs/cli/commands/doctor-list) and suggests steps to fix them
*`ionic repair`: Remove, then [regenerate](https://ionicframework.com/docs/cli/commands/repair) all dependencies
### [Understanding Version Numbers](https://ionicframework.com/docs/native/community#understanding-version-numbers) <a id="understanding-version-numbers"></a>
For any given Ionic Native plugin, the Ionic Native \(TypeScript code\) and Cordova \(native code\) version numbers will not match. The Ionic Native version number is found in `package.json`:
```text
"@ionic-native/camera": "^5.3.0",
```
CopyCopied
The Cordova plugin version number is found in both `package.json` and `config.xml`:
When checking for new native functionality or bug fixes, look for new versions on the Cordova plugin GitHub page itself \(here's the [Camera one](https://github.com/apache/cordova-plugin-camera), for example\).
To check for new Ionic Native releases \(may include exposing methods recently added by the Cordova plugin, etc.\), see [here](https://github.com/ionic-team/ionic-native/releases).
Plugins can conflict with each other when they share the same underlying native dependencies or when more than one plugin tries to access the same native code at once. For example, common libraries like the Google Play Services version \(Google Maps is using GPS v24.2 but Firebase wants GPS v27.1\). Keeping these plugins updated regularly can help with this.
Another tip is to ensure that your app uses only one plugin per specific feature/functionality \(example: Push Notifications\).
The most Ionic stable apps are routinely updated, especially at the native layer. Keeping native plugins up to date ensures your project has the latest security fixes, new features, and improved performance.
Update your project's plugins one at a time, ideally in separate code branches. This reduces the surface area that issues can arise from - if you update everything in your project at once, it's sometimes hard to tell where the problem stems from.
#### [When should I update?](https://ionicframework.com/docs/native/community#when-should-i-update-) <a id="when-should-i-update-"></a>
* When a new feature/bug is released: Run `npm outdated` to see a list of available updates.
* When new major versions are released: Official blogs, such as the [Cordova blog](https://cordova.apache.org/blog/)and [Ionic blog](https://ionicframework.com/blog/), will publish announcements and news.
* Evaluate the nature of the update: is it a shiny new feature or critical security fix?
* Timing: Where does it fit in against your team's project goals?
[Apache Cordova](https://cordova.apache.org/) is an open source native runtime that allows developers to build native mobile apps with HTML, CSS, and JavaScript. Similar to [Capacitor](https://capacitorjs.com/), 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](https://github.com/ionic-team/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](https://ionicframework.com/native), 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](https://ionicframework.com/docs/v3/native).
In addition to Cordova, Ionic Native also works with [Capacitor](https://capacitor.ionicframework.com/), Ionic's official native runtime. Basic usage below. For complete details, [see the Capacitor documentation](https://capacitor.ionicframework.com/docs/cordova/using-cordova-plugins).
All 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](https://ionicframework.com/docs/native/camera) as an example, first install it:CORDOVACAPACITOR
```text
// Install Cordova plugin
$ ionic cordova plugin add cordova-plugin-camera
// Install Ionic Native TypeScript wrapper
$ npm install @ionic-native/camera
// Install Ionic Native core library (once per project)
$ npm install @ionic-native/core
```
Next, begin using the plugin, following the various framework usage options below. For FAQ, see [here](https://ionicframework.com/docs/native/faq).
Angular 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.
```text
// app.module.ts
import { Camera } from '@ionic-native/camera/ngx';
...
@NgModule({
...
providers: [
...
Camera
...
]
...
})
export class AppModule { }
```
CopyCopied
After the plugin has been declared, it can be imported and injected like any other service:
```text
// camera.service.ts
import { Injectable } from "@angular/core";
import { Camera, CameraOptions } from "@ionic-native/camera/ngx";
React apps must use Capacitor to build native mobile apps. However, Ionic Native \(and therefore, Cordova plugins\) can still be used.// Install Core library \(once per project\)npm install @ionic-native/core
Vanilla 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:
```text
import { Camera } from "@ionic-native/camera";
document.addEventListener("deviceready", () => {
Camera.getPicture()
.then((data) => console.log("Took a picture!", data))
.catch((e) => console.log("Error occurred while taking a picture", e));
The ActionSheet plugin shows a native list of options the user can choose from.
Requires Cordova plugin: `cordova-plugin-actionsheet`. For more info, please see the [ActionSheet plugin docs](https://github.com/EddyVerbruggen/cordova-plugin-actionsheet).
The ActionSheet plugin shows a native list of options the user can choose from.
Requires Cordova plugin: `cordova-plugin-actionsheet`. For more info, please see the [ActionSheet plugin docs](https://github.com/EddyVerbruggen/cordova-plugin-actionsheet).
Plugin for Google Ads, including AdMob / DFP \(DoubleClick for publisher\) and mediations to other Ad networks.
IMPORTANT NOTICE: this plugin takes a percentage out of your earnings if you profit more than $1,000. Read more about this on the plugin's repo. For a completely free alternative, see [AdMobPro Free](https://github.com/danielsogl/awesome-cordova-plugins/tree/8516b357edaca8fc543713ba99c42cfde0225f86/docs/plugins/admob-free/README.md).
Plugin for Google Ads, including AdMob / DFP (DoubleClick for publisher) and mediations to other Ad networks.
IMPORTANT NOTICE: this plugin takes a percentage out of your earnings if you profit more than $1,000. Read more about this on the plugin's repo. For a completely free alternative, see [AdMobPro Free](../admob-free).
Most complete Admob plugin with support for [Tappx](http://www.tappx.com/?h=dec334d63287772de859bdb4e977fce6) ads. Monetize your apps and games with AdMob ads, using latest Google AdMob SDK. With this plugin you can show AdMob ads easily!
This cordova ionic plugin allows you to perform AES 256 encryption and decryption on the plain text. It's a cross-platform plugin which supports both Android and iOS. The encryption and decryption are performed on the device native layer so that the performance is much faster.
Paytm All-in-One SDK plugin for Cordova/Ionic Applications Paytm All-in-One SDK provides a swift, secure and seamless payment experience to your users by invoking the Paytm app \(if installed on your user’s smartphone\) to complete payment for your order. Paytm All-in-One SDK enables payment acceptance via Paytm wallet, Paytm Payments Bank, saved Debit/Credit cards, Net Banking, BHIM UPI and EMI as available in your customer’s Paytm account. If Paytm app is not installed on a customer's device, the transaction will be processed via web view within the All-in-One SDK. For more information about Paytm All-in-One SDK, please visit [https://developer.paytm.com/docs/all-in-one-sdk/hybrid-apps/cordova/](https://developer.paytm.com/docs/all-in-one-sdk/hybrid-apps/cordova/)
Paytm All-in-One SDK plugin for Cordova/Ionic Applications
Paytm All-in-One SDK provides a swift, secure and seamless payment experience to your users by invoking the Paytm app (if installed on your user’s smartphone) to complete payment for your order.
Paytm All-in-One SDK enables payment acceptance via Paytm wallet, Paytm Payments Bank, saved Debit/Credit cards, Net Banking, BHIM UPI and EMI as available in your customer’s Paytm account. If Paytm app is not installed on a customer's device, the transaction will be processed via web view within the All-in-One SDK.
For more information about Paytm All-in-One SDK, please visit https://developer.paytm.com/docs/all-in-one-sdk/hybrid-apps/cordova/
This plugin enables developers to offer users a true full screen experience in their Cordova and PhoneGap apps for Android. Using Android 4.0+, you can use true full screen in "lean mode", the way you see in apps like YouTube, expanding the app right to the edges of the screen, hiding the status and navigation bars until the user next interacts. This is ideally suited to video or cut-scene content. In Android 4.4+, however, you can now enter true full screen, fully interactive immersive mode. In this mode, your app will remain in true full screen until you choose otherwise; users can swipe down from the top of the screen to temporarily display the system UI.
This plugin enables developers to offer users a true full screen experience in their Cordova and PhoneGap apps for Android.
Using Android 4.0+, you can use true full screen in "lean mode", the way you see in apps like YouTube, expanding the app right to the edges of the screen, hiding the status and navigation bars until the user next interacts. This is ideally suited to video or cut-scene content.
In Android 4.4+, however, you can now enter true full screen, fully interactive immersive mode. In this mode, your app will remain in true full screen until you choose otherwise; users can swipe down from the top of the screen to temporarily display the system UI.
This plugin enables developers to get the cutout and android devices inset sizes It is based on the cordova plugin developed by @tobspr: [https://github.com/tobspr/cordova-plugin-android-notch](https://github.com/tobspr/cordova-plugin-android-notch) This plugin works on all android versions, but we can only detect notches starting from Android 9.
This plugin is designed to support Android new permissions checking mechanism.
You can find all permissions here: [https://developer.android.com/reference/android/Manifest.permission.html](https://developer.android.com/reference/android/Manifest.permission.html)
This plugin allows you to check if an app is installed on the user's device. It requires an URI Scheme \(e.g. twitter://\) on iOS or a Package Name \(e.g com.twitter.android\) on Android.
Requires Cordova plugin: cordova-plugin-appavailability. For more info, please see the [AppAvailability plugin docs](https://github.com/ohh2ahh/AppAvailability).
This plugin allows you to check if an app is installed on the user's device. It requires an URI Scheme (e.g. twitter://) on iOS or a Package Name (e.g com.twitter.android) on Android.
Requires Cordova plugin: cordova-plugin-appavailability. For more info, please see the [AppAvailability plugin docs](https://github.com/ohh2ahh/AppAvailability).
App Center Analytics helps you understand user behavior and customer engagement to improve your app. The SDK automatically captures session count and device properties like model, OS version, etc. You can define your own custom events to measure things that matter to you. All the information captured is available in the App Center portal for you to analyze the data.
For more info, please see [https://docs.microsoft.com/en-us/appcenter/sdk/analytics/cordova](https://docs.microsoft.com/en-us/appcenter/sdk/analytics/cordova)
App Center Analytics helps you understand user behavior and customer engagement to improve your app. The SDK automatically captures session count and device properties like model, OS version, etc. You can define your own custom events to measure things that matter to you. All the information captured is available in the App Center portal for you to analyze the data.
For more info, please see [https://docs.microsoft.com/en-us/appcenter/sdk/crashes/cordova](https://docs.microsoft.com/en-us/appcenter/sdk/crashes/cordova)
Generates a low memory warning. For more info, please see: [https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-generate-low-memory](https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-generate-low-memory)
For more info, please see [https://docs.microsoft.com/en-us/appcenter/sdk/other-apis/cordova](https://docs.microsoft.com/en-us/appcenter/sdk/other-apis/cordova)
The AppRate plugin makes it easy to prompt the user to rate your app, either now, later, or never.
Requires Cordova plugin: cordova-plugin-apprate. For more info, please see the [AppRate plugin docs](https://github.com/pushandplay/cordova-plugin-apprate).
The AppRate plugin makes it easy to prompt the user to rate your app, either now, later, or never.
Requires Cordova plugin: cordova-plugin-apprate. For more info, please see the [AppRate plugin docs](https://github.com/pushandplay/cordova-plugin-apprate).
Reads the version of your app from the target build settings.
Requires Cordova plugin: `cordova-plugin-app-version`. For more info, please see the [Cordova App Version docs](https://github.com/whiteoctober/cordova-plugin-app-version).
Reads the version of your app from the target build settings.
Requires Cordova plugin: `cordova-plugin-app-version`. For more info, please see the [Cordova App Version docs](https://github.com/whiteoctober/cordova-plugin-app-version).
Cordova / Phonegap plugin for communicating with HTTP servers. Supports iOS and Android.
Advantages over Javascript requests:
* SSL / TLS Pinning
* CORS restrictions do not apply
* Handling of HTTP code 401 - read more at [Issue CB-2415](https://issues.apache.org/jira/browse/CB-2415)
Note: This plugin extends the pre-existing [cordova-advanced-http-plugin](https://github.com/silkimen/cordova-plugin-advanced-http), we have only added approov functionality on top of it. All credit goes to the actual plugin developer.
iOS Background Fetch Implementation. See: [https://developer.apple.com/reference/uikit/uiapplication\#1657399](https://developer.apple.com/reference/uikit/uiapplication#1657399) iOS Background Fetch is basically an API which wakes up your app about every 15 minutes \(during the user's prime-time hours\) and provides your app exactly 30s of background running-time. This plugin will execute your provided callbackFn whenever a background-fetch event occurs. There is no way to increase the rate which a fetch-event occurs and this plugin sets the rate to the most frequent possible value of UIApplicationBackgroundFetchIntervalMinimum -- iOS determines the rate automatically based upon device usage and time-of-day \(ie: fetch-rate is about ~15min during prime-time hours; less frequently when the user is presumed to be sleeping, at 3am for example\). For more detail, please see [https://github.com/transistorsoft/cordova-plugin-background-fetch](https://github.com/transistorsoft/cordova-plugin-background-fetch)
iOS Background Fetch is basically an API which wakes up your app about every 15 minutes (during the user's prime-time hours) and provides your app exactly 30s of background running-time. This plugin will execute your provided callbackFn whenever a background-fetch event occurs. There is no way to increase the rate which a fetch-event occurs and this plugin sets the rate to the most frequent possible value of UIApplicationBackgroundFetchIntervalMinimum -- iOS determines the rate automatically based upon device usage and time-of-day (ie: fetch-rate is about ~15min during prime-time hours; less frequently when the user is presumed to be sleeping, at 3am for example).
For more detail, please see https://github.com/transistorsoft/cordova-plugin-background-fetch
This plugin provides foreground and background geolocation with battery-saving "circular region monitoring" and "stop detection". For more detail, please see [https://github.com/mauron85/cordova-plugin-background-geolocation](https://github.com/mauron85/cordova-plugin-background-geolocation)
Cordova plugin to prevent the app from going to sleep while in background. Requires Cordova plugin: cordova-plugin-background-mode. For more info about plugin, visit: [https://github.com/katzer/cordova-plugin-background-mode](https://github.com/katzer/cordova-plugin-background-mode)
The essential purpose of badge numbers is to enable an application to inform its users that it has something for them — for example, unread messages — when the application isn’t running in the foreground.
Requires Cordova plugin: cordova-plugin-badge. For more info, please see the [Badge plugin docs](https://github.com/katzer/cordova-plugin-badge).
Android Note: Badges have historically only been a feature implemented by third party launchers and not visible unless one of those launchers was being used \(E.G. Samsung or Nova Launcher\) and if enabled by the user. As of Android 8 \(Oreo\), [notification badges](https://developer.android.com/training/notify-user/badges) were introduced officially to reflect unread notifications. This plugin is unlikely to work as expected on devices running Android 8 or newer. Please see the [local notifications plugin docs](https://github.com/katzer/cordova-plugin-local-notifications) for more information on badge use with notifications.
The essential purpose of badge numbers is to enable an application to inform its users that it has something for them — for example, unread messages — when the application isn’t running in the foreground.
Requires Cordova plugin: cordova-plugin-badge. For more info, please see the [Badge plugin docs](https://github.com/katzer/cordova-plugin-badge).
Android Note: Badges have historically only been a feature implemented by third party launchers and not visible unless one of those launchers was being used (E.G. Samsung or Nova Launcher) and if enabled by the user. As of Android 8 (Oreo), [notification badges](https://developer.android.com/training/notify-user/badges) were introduced officially to reflect unread notifications. This plugin is unlikely to work as expected on devices running Android 8 or newer. Please see the [local notifications plugin docs](https://github.com/katzer/cordova-plugin-local-notifications) for more information on badge use with notifications.
The Barcode Scanner Plugin opens a camera view and automatically scans a barcode, returning the data back to you.
Requires Cordova plugin: `phonegap-plugin-barcodescanner`. For more info, please see the [BarcodeScanner plugin docs](https://github.com/phonegap/phonegap-plugin-barcodescanner).
The Barcode Scanner Plugin opens a camera view and automatically scans a barcode, returning the data back to you.
Requires Cordova plugin: `phonegap-plugin-barcodescanner`. For more info, please see the [BarcodeScanner plugin docs](https://github.com/phonegap/phonegap-plugin-barcodescanner).
Requires Cordova plugin: cordova-plugin-batterystatus. For more info, please see the [BatteryStatus plugin docs](https://github.com/apache/cordova-plugin-battery-status).
Requires Cordova plugin: cordova-plugin-batterystatus. For more info, please see the [BatteryStatus plugin docs](https://github.com/apache/cordova-plugin-battery-status).
This plugin enables communication between a phone and Bluetooth Low Energy \(BLE\) peripherals.
The plugin provides a simple JavaScript API for iOS and Android.
* Scan for peripherals
* Connect to a peripheral
* Read the value of a characteristic
* Write new value to a characteristic
* Get notified when characteristic's value changes
Advertising information is returned when scanning for peripherals. Service, characteristic, and property info is returned when connecting to a peripheral. All access is via service and characteristic UUIDs. The plugin manages handles internally.
Simultaneous connections to multiple peripherals are supported.
This plugin enables communication between a phone and Bluetooth Low Energy (BLE) peripherals.
The plugin provides a simple JavaScript API for iOS and Android.
- Scan for peripherals
- Connect to a peripheral
- Read the value of a characteristic
- Write new value to a characteristic
- Get notified when characteristic's value changes
Advertising information is returned when scanning for peripherals. Service, characteristic, and property info is returned when connecting to a peripheral. All access is via service and characteristic UUIDs. The plugin manages handles internally.
Simultaneous connections to multiple peripherals are supported.
$ ionic cordova plugin add blinkid-cordova --variable CAMERA_USAGE_DESCRIPTION="Enable your camera so that you can scan your ID to validate your account"
$ ionic cordova plugin add blinkid-cordova --variable CAMERA_USAGE_DESCRIPTION="Enable your camera so that you can scan your ID to validate your account"
This plugin has the most complete implementation for interacting with Bluetooth LE devices on Android, iOS and partially Windows. It's a wrap around [randdusing/cordova-plugin-bluetoothle](https://github.com/randdusing/cordova-plugin-bluetoothle/blob/master/readme.md) cordova plugin for Ionic. It supports peripheral **and** central modes and covers most of the API methods available on Android and iOS.
This plugin has the most complete implementation for interacting with Bluetooth LE devices on Android, iOS and partially Windows.
It's a wrap around [randdusing/cordova-plugin-bluetoothle](https://github.com/randdusing/cordova-plugin-bluetoothle/blob/master/readme.md) cordova plugin for Ionic.
It supports peripheral **and** central modes and covers most of the API methods available on Android and iOS.
This plugin enables serial communication over Bluetooth. It was written for communicating between Android or iOS and an Arduino \(not Android to Android or iOS to iOS\).
This plugin enables serial communication over Bluetooth. It was written for communicating between Android or iOS and an Arduino (not Android to Android or iOS to iOS).
Branch.io is an attribution service for deeplinking and invitation links
## Supported platforms
- iOS
- Android
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.