* 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
* 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
Co-authored-by: Srinidhi Anand Rao <srinidhi.rao@unvired.io>
* feat(approov-advanced-http) add wrapper for approov advanced http cordova plugin
* feat(approov-advanced-http) update plugin name so that it does not collide with existing http module
* added custom-uisdk index file
* feat(CustomUiSDK): add plugin for Paytm Custom UI SDK
* removed template generated comments and added ngx at the end to the import
* feat(CustomUiSDK): added app invoke method
* 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
Co-authored-by: Srinidhi Anand Rao <srinidhi.rao@unvired.io>
* 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
Co-authored-by: Srinidhi Anand Rao <srinidhi.rao@unvired.io>
* added custom-uisdk index file
* feat(CustomUiSDK): add plugin for Paytm Custom UI SDK
* removed template generated comments and added ngx at the end to the import
* Add the new "registerBiometricSecret" and "loadBiometricSecret" methods for 'fingerprint-aio' plugin
* Update the response type for `loadBiometricSecret`
* Add new error msg for Secret not Found
cordova http API allows for 'raw' serializer, and in fact 'raw' is referenced in several places in this file. It is even possible to set the serializer using `setDataSerializer('raw')`
This serializer is required for sending binary data.
The original project message in github.com:
No longer maintained.
Gavin Henry (ghenry22) has been maintaining a fork that should be updated and working better than this one. Please use his fork.
Added support to pass signature incase the card payment require signature for authorisation
Added support to void any payment
Removed iOS platform for now as it will be supported in coming releases
* feat(jumio): add plugin
* Update index.ts
* docs(example & cordova repo)
* remove space at end of plugin name
* Readme description doesn't generate md file properly under certain conditions
Co-authored-by: Daniel Sogl <daniel@sogls.de>
by.chemerisuk.cordova.firebase.FirebaseAuthenticationPlugin.signInWithVerificationId argument 2 has type java.lang.String, got java.lang.Integer
smsCode has to be string instead of number
As said in the comment: `if specified, aggregation is grouped an array of "buckets" (windows of time),` the `bucket` field in `HealthQueryOptionsAggregated` should be optional.
* feat(MobileMessaging): add methods for CustomEvents support
* fix(MobileMessaging) change customAttributes type
* fix(MobileMessaging): change methods return type
Co-authored-by: Konstantin Latypov <Konstantin.Latypov@infobip.com>
* 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
Co-authored-by: Srinidhi Anand Rao <srinidhi.rao@unvired.io>
When there are no apps installed that can handle "mail" then the "apps" array is returned as `null` from the plugin. Ensure we don't try to call `length` on `null`.
* 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(fcm): add missing clearAllNotifications
* getAPNSToken method added
New version of `cordova-plugin-fcm-with-dependecy-updated` released: v4.0.0
_“The old FCMPlugin.getToken is focused on retrieving the FCM Token. For the IOS, APNS token can now be retrieved by the new method”_ (Show readme)[https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated#version-400-12102019]
* hasPermission added
[Show readme.md](https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated#version-320-16092019)
#### Checking for permissions
Useful for IOS. On android, it will always return `true`.
```javascript
FCMPlugin.hasPermission(function(doesIt){
// doesIt === true => yes, push was allowed
// doesIt === false => nope, push will not be available
// doesIt === null => still not answered, recommended checking again later
if(doesIt) {
haveFun();
}
});
```
# Conflicts:
# src/@ionic-native/plugins/fcm/index.ts
Co-authored-by: Alexis Caffa <AlexisCaffa@users.noreply.github.com>
* 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(camera-preview):add getCameraCharacteristics
added getCameraCharacteristics to get the characteristics of all available cameras. #3163
* Update index.ts
* 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
* Update index.ts
Added description field to IChannelOptions object and changed vibration type to get a number array
* Update index.ts
Added description field to IChannelOptions object and changed vibration type to get a number array
BREAKING CHANGE: update firebase-x-cordova plugin to version 7
* fix(firebase-x): update types to match cordova-plugin-firebasex 7.0.0
* fix(firebase-x): Add getAPNSToken(), add `onApnsTokenReceived()`
* Add getAPNSToken() plugin API method to get the APNS token on iOS.
* (iOS) Add `onApnsTokenReceived()` to register a callback function to be invoked when the APNS token is allocated.
* fix lint errors
* 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
* 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
It seems like these two definitions were switched around accidentally. I'm just going from the obvious logic of it. I don't know if there is some situation where the names are intentionally switched around? Please only accept PR if you can vouch for my change.
* Add Basic WebSocketServer Class
* Change for custom plugin fork
* Set cordova observable property
* Setup for custom fork of plugin
Using custom fork for better support for
observables. Use original repo when pull request
https://github.com/becvert/cordova-plugin-websocket-server/pull/64 is merged
* Add Documentation
* Remove double quotes with single quotes
* Fix lint issues
* Fix stop() docs
* feat(cordova-plugin-preview-any-file): add new plugin to preview the files in both ios and android
* fix lint error
* add missing descriptions
* add the reop link
* feat(cordova-plugin-preview-any-file): add new plugin to preview the files in both ios and android
* fix lint error
* add missing descriptions
* add the reop link
* Fixes#2972https://github.com/ionic-team/ionic-native/issues/2972
* If window does not exist.
But is there a case where window does not exist? If ionic-native always runs in browsers enviroment (like Cordova / WebView) we could remove the `typeof` checks.
* 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
* Update index.d.ts
Property comments are omitted if they are not marked with double asterisks. Added missing asterisks
* Update index.d.ts
Updated comments to match linter settings
* Fix lint errors and some missing comments
* add missing options and improve types
* 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
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or https://ionicworldwide.herokuapp.com/
[ ] support request => Please do not submit support requests here, use the discussions section https://github.com/danielsogl/awesome-cordova-plugins/discussions
This is a short guide on creating new plugin wrappers for Ionic Native.
## Creating Plugin Wrappers
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.
gulp plugin:create -n PluginName
// add -m flag to get a minimal template to start with
@@ -71,7 +70,7 @@ export class Geolocation {
Here, `plugin` is the name of the plugin package on npm and used when calling `cordova plugin add`.
`pluginRef` refers to the where on `window` the underlying Cordova plugin is normally exposed. For example, in the case of the Cordova Geolocation plugin, normally you would make calls like `window.navigator.geolocation.getCurrentPosition({}, success, error)`, so the `pluginRef` in this case is `navigator.geolocation`.
`pluginRef` refers to the where on `window` the underlying Cordova plugin is normally exposed. For example, in the case of the Cordova Geolocation plugin, normally you would make calls like `window.navigator.geolocation.getCurrentPosition({}, success, error)`, so the `pluginRef` in this case is `navigator.geolocation`.
#### Class Methods
@@ -86,7 +85,7 @@ Let's take a look at `getCurrentPosition` first.
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>`.
By default, the `@Cordova` decorator wraps the plugin callbacks in a Promise that resolves when the success callback is called and rejects when the error callback is called. It also ensures that Cordova and the underlying plugin are available, and prints helpful diagnostics if they aren't.
By default, the `@Cordova` decorator wraps the plugin callbacks in a Promise that resolves when the success callback is called and rejects when the error callback is called. It also ensures that Cordova and the underlying plugin are available, and prints helpful diagnostics if they aren't.
Next, let's look at the `watchPosition` method.
@@ -103,7 +102,7 @@ The `@Cordova` decorator has a few more options now.
`observable` indicates that this method may call its callbacks multiple times, so `@Cordova` wraps it in an [`Observable`](https://github.com/ionic-team/ionic-native#promises-and-observables) instead of a Promise.
`callbackOrder` refers to the method signature of the underlying Cordova plugin, and tells Ionic Native which arguments are the callbacks to map to the wrapping Promise or Observable. In this case, the signature is [`watchPosition(success, error, options)`](https://github.com/apache/cordova-plugin-geolocation#navigatorgeolocationwatchposition), so we need to tell `@Cordova` that the callbacks are the first arguments, not the last arguments. For rare cases, you can also specify the options `successIndex` and `errorIndex` to indicate where in the argument list the callbacks are located.
`callbackOrder` refers to the method signature of the underlying Cordova plugin, and tells Ionic Native which arguments are the callbacks to map to the wrapping Promise or Observable. In this case, the signature is [`watchPosition(success, error, options)`](https://github.com/apache/cordova-plugin-geolocation#navigatorgeolocationwatchposition), so we need to tell `@Cordova` that the callbacks are the first arguments, not the last arguments. For rare cases, you can also specify the options `successIndex` and `errorIndex` to indicate where in the argument list the callbacks are located.
`clearFunction` is used in conjunction with the `observable` option and indicates the function to be called when the Observable is disposed.
@@ -126,43 +125,50 @@ We have very precise rules over how our git commit messages can be formatted. Th
`type(scope): subject`
#### Type
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
- **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
The scope could be anything specifying place of the commit change. For example, the name of the plugin being changed
#### Subject
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
- 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
#### Plugin
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.
-_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
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
@@ -179,6 +185,7 @@ Checks if the plugin and the method are available before executing. By default,
- **platforms**: array of strings indicating supported platforms. Specify this if the supported platforms doesn't match the plugin's supported platforms.
Example:
```ts
@Cordova()
someMethod():Promise<any>{return;}
@@ -188,20 +195,25 @@ syncMethod(): number { }
```
#### CordovaProperty
Checks if the plugin and property exist before getting/setting the property's value
Example:
```ts
@CordovaProperty()
someProperty: string;
```
#### CordovaCheck
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:
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
Example:
```ts
@CordovaCheck()
someMethod():Promise<any>{
@@ -210,9 +222,11 @@ someMethod(): Promise<any> {
```
#### CordovaFunctionOverride
Wrap a stub function in a call to a Cordova plugin, checking if both Cordova and the required plugin are installed.
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.
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, Awesome Cordova Plugins 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).
## 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/](https://ionicframework.com/docs/native/).
### Basic Usage
#### Ionic/Angular apps
To use a plugin, import and add the plugin provider to your `@NgModule`, and then inject it where you wish to use it.
To use a plugin, import and add the plugin provider to your `@NgModule`, and then inject it where you wish to use it.
Make sure to import the injectable class from the `/ngx` directory as shown in the following examples:
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.
console.log('Error occurred while taking a picture',err);
}
);
});
```
### 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. :heart:
**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.
## Supported platforms
- Android
- iOS
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.