Compare commits

...

91 Commits

Author SHA1 Message Date
Ibby Hadeed
4bd4f7fa84 chore(): update changelog 2017-05-09 18:39:58 -04:00
Ibby Hadeed
89708781bf 3.7.0 2017-05-09 18:39:50 -04:00
Ibby Hadeed
cf8d2e7f02 Merge branch 'master' of github.com:driftyco/ionic-native 2017-05-09 18:33:42 -04:00
Daniel Sogl
54b6659469 docs(firebase): update platforms (#1521)
fix #1518
2017-05-09 18:29:43 -04:00
Ibby Hadeed
36d603bdd7 docs(web-instent): mark as beta 2017-05-09 18:29:26 -04:00
Ibby Hadeed
15cf751441 Merge branch 'master' of github.com:driftyco/ionic-native 2017-05-09 18:29:13 -04:00
Daniel Sogl
252c3e4a21 fix(web-intent): updated source (#1519)
* refactor(web-intent): updated source

fix #1517

* Update index.ts
2017-05-09 18:29:06 -04:00
Chris Topaloudis
958380275c fix(google-maps): fix fromPointToLatLng params (#1514) 2017-05-09 18:27:05 -04:00
Ibby Hadeed
e35408adca docs(): remove result word 2017-05-09 18:25:48 -04:00
Ibby Hadeed
c7400b1ab1 Merge branch 'master' of github.com:driftyco/ionic-native 2017-05-09 18:25:08 -04:00
Daniel Sogl
4e9b2d917b feat(mobile-accessibility): add Mobile Accessibility plugin (#1505)
* feature(plugin): mobile-accessibility

fix #1304

* fixed linting

* lint

* usage

* optimized promises
2017-05-09 18:24:59 -04:00
Daniel Sogl
e04b7a4a24 docs(broadcaster): fix example (#1484)
fix #1369
2017-05-09 18:23:37 -04:00
Daniel Sogl
46b4e25f7b feat(plugin): add File encryption plugin (#1509)
* feat(plugin): File encryption

fix #618

* typo
2017-05-09 18:22:18 -04:00
Ibby Hadeed
12356d2d34 refactor 2017-05-09 18:21:46 -04:00
Ibby Hadeed
de320ac21c Merge branch 'master' of github.com:driftyco/ionic-native 2017-05-09 18:20:58 -04:00
Daniel Sogl
3d747d38b2 feat(phonegap-local-notifications): add Phonegap local notifications plugin (#1474)
* typo(barcode-scanner): fixe circle lint error

* typo(docs):  Unified the documentations

In some plugins the typescript markup was missing.
I also unified the console.log string from console.log("hello") to console.log('Hello') so any plugin page look the same.

* added phonegap-local-notifications

* update #1

* update #3

* update #4

* cleaned up the usage part

* removed old folder

* Update index.ts

* Update index.ts

* Update index.ts

* Update index.ts

* Update index.ts

* Update index.ts
2017-05-09 18:20:49 -04:00
Ibby Hadeed
1379f6389a fix(document-viewer): fix params 2017-05-09 18:18:35 -04:00
Daniel Sogl
6855fe8f7d feat(plugin): add Document Viewer plugin (#1520)
* typo(barcode-scanner): fixe circle lint error

* typo(docs):  Unified the documentations

In some plugins the typescript markup was missing.
I also unified the console.log string from console.log("hello") to console.log('Hello') so any plugin page look the same.

* Initial commit

* updated interface

* updated interface
2017-05-09 18:14:47 -04:00
Daniel Sogl
142525e133 feature(autostart): add Autostart plugin (#1506)
fix #1163
2017-05-09 18:13:51 -04:00
Ibby Hadeed
af66a0dbec refactor(wheel-selector): fixes & enhancements 2017-05-09 18:12:56 -04:00
Ibby Hadeed
235f51a351 Merge branch 'master' of github.com:driftyco/ionic-native 2017-05-09 18:09:16 -04:00
jasonmamy
8fe4eecbb1 feat(wheel-selector): add Native wheel Selector plugin (#1522) 2017-05-09 18:09:08 -04:00
Ibby Hadeed
14959c1162 fix(flurry-analytics): fix plugin wrapper 2017-05-09 18:07:09 -04:00
Ibby Hadeed
e84359b2b1 refactor(google-maps): accept string or number 2017-05-09 17:56:03 -04:00
Ibby Hadeed
88f393288d docs(): fix typo 2017-05-09 17:55:21 -04:00
Ibby Hadeed
eb30ad2fec docs(): update 2017-05-09 17:55:08 -04:00
Robert Coie
ec85792a10 fix(google-maps): add args to panBy (#1507) 2017-05-09 17:54:25 -04:00
Daniel Sogl
ce2cc1b815 feat(intercom): add Intercom plugin (#1504) 2017-05-09 17:53:15 -04:00
Daniel Sogl
5ee79b4672 feat(android-premissions): add Android Permissions plugin (#1508)
fix #929
2017-05-09 17:52:58 -04:00
Daniel Sogl
ce72be76bc fix(flurry-analytics): fix pluginRef (#1485)
fix #1399
2017-05-09 17:48:07 -04:00
Daniel Sogl
f96505f533 docs(email composer): out of beta (#1480)
This repo is out of beta and they fixed problems with newer android versions

https://github.com/hypery2k/cordova-email-plugin/commit/171b99b
2017-05-09 17:44:00 -04:00
Daniel Sogl
f6835dc9b8 docs(fingerprint-aio): out of beta (#1479)
This plugin is out of beta (1.1.0)
2017-05-09 17:42:36 -04:00
Daniel Sogl
302fa48e7c chore(): fix ionic native import (#1471) 2017-05-09 17:39:08 -04:00
Daniel Sogl
ed6044d4e8 feat(android-fingerprint-auth): add ERRORS constant (#1470)
* Update index.ts

* fix lint

* linter
2017-05-09 17:38:30 -04:00
Daniel Sogl
aa9826f657 feat(facebook): add EVENTS constant (#1510)
* improve(facebook): added missing EVENTS

* Update index.ts

* lint
2017-05-09 17:36:13 -04:00
Daniel Sogl
d25b2f16a9 feat(app-minimize): add AppMinimize plugin (#1501)
* typo(barcode-scanner): fixe circle lint error

* typo(docs):  Unified the documentations

In some plugins the typescript markup was missing.
I also unified the console.log string from console.log("hello") to console.log('Hello') so any plugin page look the same.

* Added AppMinimize plugin

* promisse

* usage
2017-05-09 17:35:13 -04:00
Daniel Sogl
14f38a0e28 feat(health-kit): add HealthKit plugin (#1499)
* typo(barcode-scanner): fixe circle lint error

* typo(docs):  Unified the documentations

In some plugins the typescript markup was missing.
I also unified the console.log string from console.log("hello") to console.log('Hello') so any plugin page look the same.

* Initial commit

- added Plugin infos
- added methods

* Added Interface

* Implemented all methods

* fixed retun types

TODO: Improve Interface Docs

* Interface discription

Still needs some improvements
2017-05-09 17:34:38 -04:00
Daniel Sogl
c7111a3117 fix(app-preferences): value can be any type (#1498)
* refactor(AppPreferences): changed input type

fix #1334

* Update index.ts
2017-05-09 17:33:47 -04:00
Daniel Sogl
65a8095e5f feat(social-sharing): add setIPadPopupCoordinates method (#1497)
* refactor(social sharing): added missing method

fix #1288

* Update index.ts
2017-05-09 17:33:10 -04:00
Daniel Sogl
70c9558d2b docs(youtube-video-player): update repo (#1496)
* refactor(YoutubeVideoPlayer): updated repo

fix #1352

* Update index.ts

* Update index.ts

* Update index.ts
2017-05-09 17:32:47 -04:00
Daniel Sogl
a5b2e981b3 feat(safari-view-controller): add missing options (#1490)
* update(SafariViewController): added missing options

fix #1489

* alphabetical

* fix linter

* Update index.ts

* Update index.ts
2017-05-09 17:32:24 -04:00
Daniel Sogl
21c9cd2e57 feat(native-ringtones): add Native Ringtones plugin (#1488)
* typo(barcode-scanner): fixe circle lint error

* typo(docs):  Unified the documentations

In some plugins the typescript markup was missing.
I also unified the console.log string from console.log("hello") to console.log('Hello') so any plugin page look the same.

* initial commit

Added wrapper

* Added usage guide

* Added parms
2017-05-09 17:31:57 -04:00
Patrick Bußmann
e35501d3e5 docs(media): add hints for media plugin if its not recording on iOS #1452 (#1487) 2017-05-09 17:31:21 -04:00
Daniel Sogl
e6a647b08b fix(background-mode): add missing method (#1486)
fix #1393
2017-05-09 17:31:01 -04:00
Dave Alden
a4151abebf feat(diagnostic): update to support latest signatures (#1458)
* refactor(diagnostic plugin): update camera API function signatures to support cordova.plugins.diagnostic@3.6.0. See 515317e89a

* fix(diagnostic plugin): fix whitespace linting errors in previous commit

* * fix(diagnostic plugin): add callback indices to Cordova decorator in camera API so externalStorage parameter can be optionally omitted.
See https://github.com/driftyco/ionic-native/pull/1458#issuecomment-299030833

* fix(diagnostic plugin): fix incorrect return type on getCameraRollAuthorizationStatus()
2017-05-09 17:30:11 -04:00
Askhat Saiapov
6cc6393712 feat(fcm): support Firebase Cloud Messaging plugin (#1449)
* feat(): add fcm plugin

* fix(): fix whitespace

* fix(): add observables for methods

* feat(): add NotificationData interface

* doc(): improve examples in document

* style(): remove usage examples from emthod declarations

* fix(): decorate methods appropriately
2017-05-09 17:29:29 -04:00
Daniel Sogl
8330c92921 feat(camera-preview): add tapToFocus method (#1494)
* Update index.ts

* Update index.ts
2017-05-07 10:17:00 -04:00
Fabriece Sumuni
80af55100e docs(): clarify the options for target (#1493)
I struggled to figure out what options I had for target until I read them from the github repo.
I'm assuming that the documentation is generated from the comments and I think addition clarifies the intent of `target` a bit.
2017-05-07 09:35:41 -04:00
Daniel Sogl
8311aaf893 fix(native-storage): add missing keys method (#1495)
fix #1415
2017-05-07 09:31:59 -04:00
Ibby Hadeed
b2d07b43cc refactor(file): minimize code for readFile 2017-05-05 15:07:54 -04:00
Ibby Hadeed
134eab2dcc refactor(file): fix build issues 2017-05-05 14:46:49 -04:00
Daniel Sogl
aeea03478b refactor(mixpanel): remove showSurvey (#1469)
* Update index.ts

* Update index.ts
2017-05-05 14:20:20 -04:00
Daniel Sogl
4db902b9dd docs(iab): https://ionicframework.com/ (#1468) 2017-05-05 14:19:48 -04:00
Daniel Sogl
94bd82097c docs(zbar): fix import and usage (#1467)
* docs(zbar): fixed import and usage

* Update index.ts

* Update index.ts
2017-05-05 14:19:31 -04:00
Daniel Sogl
8a445e9a31 fix(build): fix build errors (#1472) 2017-05-05 14:13:07 -04:00
Rory Standley
78e19e5f5b docs(): add the unit of measurement for radius value (#1463)
Didn't seem quite obvious to me so might help someone else
2017-05-05 14:08:15 -04:00
Daniel Sogl
7738622976 docs(): fix typo (#1476)
I missed some typo
2017-05-05 14:07:46 -04:00
Daniel Sogl
d9cc959939 feat(touch-id): add didFingerprintDatabaseChange (#1475)
fix #1466
2017-05-05 13:54:30 -04:00
Daniel Sogl
bf88b78c63 docs(apprate): update example (#1455)
* docs(apprate): update example

* Update index.ts

* typo

* fixed preferences

* Update index.ts
2017-05-03 17:53:42 -04:00
Daniel Sogl
c600cd622e docs(app-preferences): unified example (#1456)
I changed the usage part to match the usage part of other plugins 

1. constructor with the private import
2. Call the plugin methods
2017-05-03 17:01:28 -04:00
Daniel Sogl
14a1cb9ee7 docs(admob): improve example (#1454) 2017-05-03 17:00:22 -04:00
Daniel Sogl
92468c9b84 docs(google-maps): example fix #1444 (#1461)
It should be clearer now that the marker etc. should be added inside the .then() block

Related to: 
- https://github.com/driftyco/ionic-native/issues/1444
- https://forum.ionicframework.com/t/ionic-build-android-failed/88742/9
2017-05-03 16:40:09 -04:00
Dylan v.d Merwe
6e2fdf98a2 fix(globalization): getDatePattern return types (#1451)
Added missing return types to getDatePattern.
2017-05-01 16:46:06 -04:00
Daniel Sogl
84cd81dcaf refactor(admob): remove unneeded imports (#1450)
* refactor(admob): remove unneeded imports

* Update index.ts
2017-05-01 16:36:22 -04:00
Daniel Sogl
c6f9fa356f style(): unify docs and spacing (#1448)
* typo(barcode-scanner): fixe circle lint error

* typo(docs):  Unified the documentations

In some plugins the typescript markup was missing.
I also unified the console.log string from console.log("hello") to console.log('Hello') so any plugin page look the same.
2017-04-30 14:36:22 -04:00
Daniel Sogl
a7c9abc449 refactor(barcode-scanner): fix tslint error (#1447) 2017-04-30 14:13:21 -04:00
SVANNER
748c6bd9be feat(camera-preview): add new focus methods & getFlashMode() (#1442)
4 new methods are available in the master:
- getSupportedFocusModes();
- getFocusMode();
- seFocusMode();
- getFlashMode();
2017-04-30 13:21:28 -04:00
Daniel Sogl
1a682bc3de docs(README): Ionic 3 Update / typo (#1441)
_ Update example import for Ionic 
- Removed Ionic 2.x
- typo
2017-04-30 13:19:55 -04:00
Daniel Sogl
58ad707dc3 docs(secure storage): rename item to key (#1445) 2017-04-30 13:18:49 -04:00
Patrick Reames
11dbe42a0d feat(firebase): add support for firebase ErrorLog (#1440)
* feat(firebase): add support for firebase ErrorLog

* feat(firebase): add support for firebase ErrorLog
2017-04-28 11:39:28 -04:00
Robert Coie
1123299274 refactor(barcode-scanner): improve typings (#1437) 2017-04-28 09:35:33 -04:00
Gianfrancø Palumbo
4ca4f9443d docs(): fix typos (#1435)
the OCD in me is here to help :P
2017-04-28 09:33:30 -04:00
Daniel Sogl
83a3569155 docs(): remove identifier from product id (#1432) 2017-04-28 09:33:05 -04:00
Søren Bryder
f699c6d4b7 feat(native-page-transitions): add pendingTransition methods (#1344) 2017-04-28 09:32:44 -04:00
Jan Piotrowski
dd69810494 docs(printer): fix example (#1439)
`this.p` is not defined as Printer is imported as `printer`
2017-04-28 09:32:13 -04:00
Ibby Hadeed
822be1c248 chore(): update changelog 2017-04-27 03:30:56 -04:00
Ibby Hadeed
1d29ed38f6 3.6.1 2017-04-27 03:30:54 -04:00
Ibby Hadeed
bcb3c61fe0 chore(): bump core package dependency version 2017-04-27 03:29:51 -04:00
Ibby Hadeed
955476b45b chore(): update changelog 2017-04-27 01:01:19 -04:00
Ibby Hadeed
95aa3e2f26 3.6.0 2017-04-27 01:01:08 -04:00
Ibby Hadeed
facdcdc956 docs(): add save flag
closes #1385
2017-04-27 00:55:23 -04:00
Ibby Hadeed
ab782f7093 chore(): update templates 2017-04-27 00:53:06 -04:00
Ibby Hadeed
6811750711 docs(secure-storage): fix types
closes #1416
2017-04-27 00:51:57 -04:00
Ibby Hadeed
c3d23b0ee9 refactor(): cleanup 2017-04-27 00:49:23 -04:00
Ibby Hadeed
17366a29da feat(): add IonicNativePlugin base class (#1425)
* add base class

* properties are static

* some fixes

* tslint
2017-04-27 00:36:12 -04:00
Matt Thiessen
39eaebfafd docs(): fix docs (#1423) 2017-04-27 00:36:01 -04:00
Andrew Crites
66874cc598 chore(build): allow option to specify plugins to build (#1421) 2017-04-27 00:35:47 -04:00
Andrew Crites
16dc71ab71 feat(keychain): add Keychain plugin (#1420)
* feat(keychain): adding keychain plugin

ionic-native for cordova ios keychain plugin

* feat(keychain): make touchID params optional in type def
2017-04-27 00:35:29 -04:00
Ronald Mak
b58149f2f2 fix(media): function 'create' never returns media object (#1419)
The function never returns an object of MediaObject. The onSuccess callback is wrongly used to return the object. In fact, onSuccess/onError callbacks are only invoked after the current play, record, or stop action is called.
2017-04-27 00:34:43 -04:00
Kendall González León
b6afc19e72 docs(): fix docs (#1418)
On line 11 there was not closing single quote.
2017-04-27 00:34:22 -04:00
Daniel Sogl
52d731e7d9 chore(): update to Angular 4 (#1391)
Since Ionic 3.0 released, the package should be able  to support Angular 4.0.0.
I updated the dependencies for that.
2017-04-18 17:52:34 -04:00
166 changed files with 3130 additions and 1132 deletions

View File

@@ -1,3 +1,69 @@
<a name="3.7.0"></a>
# [3.7.0](https://github.com/driftyco/ionic-native/compare/v3.6.1...v3.7.0) (2017-05-09)
### Bug Fixes
* **app-preferences:** value can be any type (#1498) ([c7111a3](https://github.com/driftyco/ionic-native/commit/c7111a3)), closes [#1334](https://github.com/driftyco/ionic-native/issues/1334)
* **background-mode:** add missing method (#1486) ([e6a647b](https://github.com/driftyco/ionic-native/commit/e6a647b)), closes [#1393](https://github.com/driftyco/ionic-native/issues/1393)
* **build:** fix build errors (#1472) ([8a445e9](https://github.com/driftyco/ionic-native/commit/8a445e9)), closes [#1472](https://github.com/driftyco/ionic-native/issues/1472)
* **document-viewer:** fix params ([1379f63](https://github.com/driftyco/ionic-native/commit/1379f63))
* **flurry-analytics:** fix plugin wrapper ([14959c1](https://github.com/driftyco/ionic-native/commit/14959c1))
* **flurry-analytics:** fix pluginRef (#1485) ([ce72be7](https://github.com/driftyco/ionic-native/commit/ce72be7)), closes [#1485](https://github.com/driftyco/ionic-native/issues/1485) [#1399](https://github.com/driftyco/ionic-native/issues/1399)
* **globalization:** getDatePattern return types (#1451) ([6e2fdf9](https://github.com/driftyco/ionic-native/commit/6e2fdf9))
* **google-maps:** add args to panBy (#1507) ([ec85792](https://github.com/driftyco/ionic-native/commit/ec85792))
* **google-maps:** fix fromPointToLatLng params (#1514) ([9583802](https://github.com/driftyco/ionic-native/commit/9583802)), closes [#1514](https://github.com/driftyco/ionic-native/issues/1514)
* **native-storage:** add missing keys method (#1495) ([8311aaf](https://github.com/driftyco/ionic-native/commit/8311aaf)), closes [#1415](https://github.com/driftyco/ionic-native/issues/1415)
* **web-intent:** updated source (#1519) ([252c3e4](https://github.com/driftyco/ionic-native/commit/252c3e4)), closes [#1517](https://github.com/driftyco/ionic-native/issues/1517)
### Features
* **android-fingerprint-auth:** add ERRORS constant (#1470) ([ed6044d](https://github.com/driftyco/ionic-native/commit/ed6044d))
* **android-premissions:** add Android Permissions plugin (#1508) ([5ee79b4](https://github.com/driftyco/ionic-native/commit/5ee79b4)), closes [#929](https://github.com/driftyco/ionic-native/issues/929)
* **app-minimize:** add AppMinimize plugin (#1501) ([d25b2f1](https://github.com/driftyco/ionic-native/commit/d25b2f1))
* **camera-preview:** add new focus methods & getFlashMode() (#1442) ([748c6bd](https://github.com/driftyco/ionic-native/commit/748c6bd))
* **camera-preview:** add tapToFocus method (#1494) ([8330c92](https://github.com/driftyco/ionic-native/commit/8330c92))
* **diagnostic:** update to support latest signatures (#1458) ([a4151ab](https://github.com/driftyco/ionic-native/commit/a4151ab))
* **facebook:** add EVENTS constant (#1510) ([aa9826f](https://github.com/driftyco/ionic-native/commit/aa9826f))
* **fcm:** support Firebase Cloud Messaging plugin (#1449) ([6cc6393](https://github.com/driftyco/ionic-native/commit/6cc6393))
* **firebase:** add support for firebase ErrorLog (#1440) ([11dbe42](https://github.com/driftyco/ionic-native/commit/11dbe42))
* **health-kit:** add HealthKit plugin (#1499) ([14f38a0](https://github.com/driftyco/ionic-native/commit/14f38a0))
* **intercom:** add Intercom plugin (#1504) ([ce2cc1b](https://github.com/driftyco/ionic-native/commit/ce2cc1b))
* **mobile-accessibility:** add Mobile Accessibility plugin (#1505) ([4e9b2d9](https://github.com/driftyco/ionic-native/commit/4e9b2d9)), closes [#1304](https://github.com/driftyco/ionic-native/issues/1304)
* **native-page-transitions:** add pendingTransition methods (#1344) ([f699c6d](https://github.com/driftyco/ionic-native/commit/f699c6d))
* **native-ringtones:** add Native Ringtones plugin (#1488) ([21c9cd2](https://github.com/driftyco/ionic-native/commit/21c9cd2))
* **phonegap-local-notifications:** add Phonegap local notifications plugin (#1474) ([3d747d3](https://github.com/driftyco/ionic-native/commit/3d747d3))
* **plugin:** add Document Viewer plugin (#1520) ([6855fe8](https://github.com/driftyco/ionic-native/commit/6855fe8))
* **plugin:** add File encryption plugin (#1509) ([46b4e25](https://github.com/driftyco/ionic-native/commit/46b4e25)), closes [#618](https://github.com/driftyco/ionic-native/issues/618)
* **safari-view-controller:** add missing options (#1490) ([a5b2e98](https://github.com/driftyco/ionic-native/commit/a5b2e98)), closes [#1489](https://github.com/driftyco/ionic-native/issues/1489)
* **social-sharing:** add setIPadPopupCoordinates method (#1497) ([65a8095](https://github.com/driftyco/ionic-native/commit/65a8095)), closes [#1288](https://github.com/driftyco/ionic-native/issues/1288)
* **touch-id:** add didFingerprintDatabaseChange (#1475) ([d9cc959](https://github.com/driftyco/ionic-native/commit/d9cc959)), closes [#1466](https://github.com/driftyco/ionic-native/issues/1466)
* **wheel-selector:** add Native wheel Selector plugin (#1522) ([8fe4eec](https://github.com/driftyco/ionic-native/commit/8fe4eec))
<a name="3.6.1"></a>
## [3.6.1](https://github.com/driftyco/ionic-native/compare/v3.6.0...v3.6.1) (2017-04-27)
<a name="3.6.0"></a>
# [3.6.0](https://github.com/driftyco/ionic-native/compare/v3.5.0...v3.6.0) (2017-04-27)
### Bug Fixes
* **media:** function 'create' never returns media object (#1419) ([b58149f](https://github.com/driftyco/ionic-native/commit/b58149f))
### Features
* **keychain:** add Keychain plugin (#1420) ([16dc71a](https://github.com/driftyco/ionic-native/commit/16dc71a))
* add IonicNativePlugin base class (#1425) ([17366a2](https://github.com/driftyco/ionic-native/commit/17366a2))
<a name="3.5.0"></a>
# [3.5.0](https://github.com/driftyco/ionic-native/compare/v3.4.4...v3.5.0) (2017-04-18)

View File

@@ -10,7 +10,7 @@ Ionic Native wraps plugin callbacks in a Promise or Observable, providing a comm
## Installation
Run following command to install Ionic Native in your project.
```
```bash
npm install @ionic-native/core --save
```
@@ -95,13 +95,13 @@ To do this, you need to provide a mock implementation of the plugins you wish to
First import the `Camera` class in your `src/app/app.module.ts` file:
```ts
```typescript
import { Camera } from '@ionic-native/camera';
```
Then create a new class that extends the `Camera` class with a mock implementation:
```ts
```typescript
class CameraMock extends Camera {
getPicture(options) {
return new Promise((resolve, reject) => {
@@ -113,7 +113,7 @@ class CameraMock extends Camera {
Finally, override the previous `Camera` class in your `providers` for this module:
```ts
```typescript
providers: [
{ provide: Camera, useClass: CameraMock }
]
@@ -121,8 +121,9 @@ providers: [
Here's the full example:
```ts
```typescript
import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
@@ -143,6 +144,7 @@ class CameraMock extends Camera {
HomePage
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
@@ -169,9 +171,9 @@ Spent way too long diagnosing an issue only to realize a plugin wasn't firing or
## Plugin Missing?
Let us know or submit a PR! Take a look at [the Developer Guide](https://github.com/driftyco/ionic-native/blob/master/DEVELOPER.md) for more on how to contribute. :heart:
## Ionic 1/Angular 1 support
## Ionic V1/Angular 1 support
Ionic Native 3.x supports Ionic 2.x and above. For Ionic/Angular 1 support, please use version 2 of Ionic Native. See the [2.x README](https://github.com/driftyco/ionic-native/blob/8cd648db5cddd7bdbe2bd78839b19c620cc8c04c/README.md) for usage information.
For Ionic V1/Angular 1 support, please use version 2 of Ionic Native. See the [2.x README](https://github.com/driftyco/ionic-native/blob/8cd648db5cddd7bdbe2bd78839b19c620cc8c04c/README.md) for usage information.
# Credits

View File

@@ -1,12 +1,12 @@
{
"name": "ionic-native",
"version": "3.5.0",
"version": "3.7.0",
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
"license": "MIT",
"devDependencies": {
"@angular/compiler": "2.4.8",
"@angular/compiler-cli": "2.4.8",
"@angular/core": "2.4.8",
"@angular/compiler": "4.0.0",
"@angular/compiler-cli": "4.0.0",
"@angular/core": "4.0.0",
"canonical-path": "0.0.2",
"child-process-promise": "2.2.0",
"conventional-changelog-cli": "1.2.0",
@@ -27,12 +27,12 @@
"q": "1.4.1",
"queue": "4.2.1",
"rimraf": "2.5.4",
"rxjs": "5.0.1",
"rxjs": "5.1.1",
"semver": "5.3.0",
"tslint": "3.15.1",
"tslint-ionic-rules": "0.0.7",
"typescript": "2.0.09",
"zone.js": "0.7.2"
"typescript": "2.2.1",
"zone.js": "^0.8.4"
},
"scripts": {
"start": "npm run test:watch",

View File

@@ -19,7 +19,7 @@ const ROOT = path.resolve(path.join(__dirname, '../../')), // root ionic-native
// dependency versions
const ANGULAR_VERSION = '*',
RXJS_VERSION = '^5.0.1',
MIN_CORE_VERSION = '^3.1.0',
MIN_CORE_VERSION = '^3.6.0',
IONIC_NATIVE_VERSION = require(path.resolve(ROOT, 'package.json')).version;
// package dependencies
@@ -40,7 +40,6 @@ PLUGIN_PACKAGE_JSON.peerDependencies = PLUGIN_PEER_DEPS;
console.log('Making new TMP directory');
fs.mkdirpSync(BUILD_TMP);
// Prepare and copy the core module's package.json
console.log('Preparing core module package.json');
CORE_PACKAGE_JSON.version = IONIC_NATIVE_VERSION;
@@ -51,6 +50,11 @@ fs.writeJsonSync(path.resolve(BUILD_CORE_DIST, 'package.json'), CORE_PACKAGE_JSO
// Fetch a list of the plugins
const PLUGINS = fs.readdirSync(PLUGINS_PATH);
// Build specific list of plugins to build from arguments, if any
let pluginsToBuild = process.argv.slice(2);
if (!pluginsToBuild.length) {
pluginsToBuild = PLUGINS;
}
// Create a queue to process tasks
const QUEUE = queue({
@@ -116,7 +120,7 @@ const addPluginToQueue = pluginName => {
};
PLUGINS.forEach(addPluginToQueue);
pluginsToBuild.forEach(addPluginToQueue);
QUEUE.start((err) => {

View File

@@ -165,7 +165,7 @@ docType: "<$ doc.docType $>"
<@ endif @>
<# --- Install commands --- #>
<pre><code class="nohighlight">$ <@ if prop.install @><$ prop.install $><@ else @>ionic plugin add <$ prop.plugin $><@ endif @>
<pre><code class="nohighlight">$ <@ if prop.install @><$ prop.install $><@ else @>ionic plugin add --save <$ prop.plugin $><@ endif @>
$ npm install --save @ionic-native/<$ doc.npmId $>
</code></pre>
<p>Repo:

View File

@@ -1,4 +1,4 @@
import { Plugin } from '@ionic-native/core';
import { Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
/**
@@ -25,6 +25,6 @@ import { Injectable } from '@angular/core';
platforms: []
})
@Injectable()
export class $PluginName {
export class $PluginName extends IonicNativePlugin {
}

View File

@@ -10,8 +10,8 @@
* - Remove this note
*
*/
import { Plugin, Cordova, CordovaProperty, CordovaInstance, InstanceProperty } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Plugin, Cordova, CordovaProperty, CordovaInstance, InstanceProperty, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
@@ -21,7 +21,7 @@ import { Observable } from 'rxjs/Observable';
*
* @usage
* ```
* import { $PluginName } from 'ionic-native';
* import { $PluginName } from '@ionic-native/';
*
*
* constructor(private $pluginName: $PluginName) { }
@@ -44,7 +44,7 @@ import { Observable } from 'rxjs/Observable';
install: '', // OPTIONAL install command, in case the plugin requires variables
})
@Injectable()
export class $PluginName {
export class $PluginName extends IonicNativePlugin {
/**
* This function does something

View File

@@ -127,10 +127,10 @@ export function InstanceCheck(opts: CordovaCheckOptions = {}) {
if (opts.sync) {
return;
} else if (opts.observable) {
return new Observable<any>(() => {});
return new Observable<any>(() => { });
}
return getPromise(() => {});
return getPromise(() => { });
}
}
@@ -290,10 +290,10 @@ export function CordovaProperty(target: any, key: string) {
export function InstanceProperty(target: any, key: string) {
Object.defineProperty(target, key, {
enumerable: true,
get: function(){
get: function() {
return this._objectInstance[key];
},
set: function(value){
set: function(value) {
this._objectInstance[key] = value;
}
});

View File

@@ -1,3 +1,4 @@
export * from './plugin';
export * from './decorators';
export * from './util';
export * from './ionic-native-plugin';

View File

@@ -0,0 +1,41 @@
export class IonicNativePlugin {
static pluginName: string;
static pluginRef: string;
static plugin: string;
static repo: string;
static platforms: string[];
static install: string;
/**
* Returns a boolean that indicates whether the plugin is installed
* @return {boolean}
*/
static installed(): boolean { return false; }
/**
* Returns the original plugin object
*/
static getPlugin(): any { }
/**
* Returns the plugin's name
*/
static getPluginName(): string { return; }
/**
* Returns the plugin's reference
*/
static getPluginRef(): string { return; }
/**
* Returns the plugin's install name
*/
static getPluginInstallName(): string { return; }
}

View File

@@ -150,7 +150,7 @@ function wrapPromise(pluginObj: any, methodName: string, args: any[], opts: any
return p;
}
function wrapOtherPromise(pluginObj: any, methodName: string, args: any[], opts: any= {}) {
function wrapOtherPromise(pluginObj: any, methodName: string, args: any[], opts: any = {}) {
return getPromise((resolve, reject) => {
const pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts);
if (pluginResult) {
@@ -225,7 +225,7 @@ export function overrideFunction(pluginObj: any, methodName: string, args: any[]
if (availabilityCheck === true) {
const pluginInstance = getPlugin(pluginObj.constructor.getPluginRef());
pluginInstance[methodName] = observer.next.bind(observer);
return () => pluginInstance[methodName] = () => {};
return () => pluginInstance[methodName] = () => { };
} else {
observer.error(availabilityCheck);
observer.complete();

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, CordovaProperty } from '@ionic-native/core';
import { Cordova, Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-native/core';
export interface ActionSheetOptions {
@@ -74,7 +74,7 @@ export interface ActionSheetOptions {
*
* const options: ActionSheetOptions = {
* title: 'What do you want with this image?',
* subtitle: 'Choose an action'
* subtitle: 'Choose an action',
* buttonLabels: buttonLabels,
* addCancelButtonWithLabel: 'Cancel',
* addDestructiveButtonWithLabel: 'Delete',
@@ -97,7 +97,7 @@ export interface ActionSheetOptions {
platforms: ['Android', 'iOS', 'Windows Phone 8', 'Browser']
})
@Injectable()
export class ActionSheet {
export class ActionSheet extends IonicNativePlugin {
@CordovaProperty
ANDROID_THEMES: {

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
@@ -69,7 +69,7 @@ export interface AdMobFreeRewardVideoConfig {
* @description
*
* @usage
* ```
* ```typescript
* import { AdMobFree, AdMobFreeBannerConfig } from '@ionic-native/admob-free';
*
*
@@ -105,7 +105,7 @@ export interface AdMobFreeRewardVideoConfig {
platforms: ['Android', 'iOS']
})
@Injectable()
export class AdMobFree {
export class AdMobFree extends IonicNativePlugin {
/**
* Convenience constructor to get event names
@@ -171,8 +171,6 @@ export class AdMobFree {
})
export class AdMobFreeBanner {
/**
* Update config.
* @param options

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export type AdSize = 'SMART_BANNER' | 'BANNER' | 'MEDIUM_RECTANGLE' | 'FULL_BANNER' | 'LEADERBOARD' | 'SKYSCRAPER' | 'CUSTOM';
@@ -95,9 +95,10 @@ export interface AdExtras {
* Plugin for Google Ads, including AdMob / DFP (doubleclick for publisher) and mediations to other Ad networks.
* @usage
* ```typescript
* import { AdMob, AdMobOptions, AdSize, AdExtras } from '@ionic-native/admob';
* import { AdMob } from '@ionic-native/admob';
* import { Platform } from 'ionic-angular';
*
* constructor(private admob: AdMob){}
* constructor(private admob: AdMob, private platform: Platform ) { }
*
* ionViewDidLoad() {
* this.admob.onAdDismiss()
@@ -105,7 +106,13 @@ export interface AdExtras {
* }
*
* onClick() {
* this.admob.prepareInterstitial('YOUR_ADID')
* let adId;
* if(this.platform.is('android') {
* adId = 'YOUR_ADID_ANDROID';
* } else if (this.platform.is('ios')) {
* adId = 'YOUR_ADID_IOS';
* }
* this.admob.prepareInterstitial(adId)
* .then(() => { this.admob.showInterstitial(); });
* }
*
@@ -123,7 +130,7 @@ export interface AdExtras {
platforms: ['Android', 'iOS', 'Windows Phone 8']
})
@Injectable()
export class AdMob {
export class AdMob extends IonicNativePlugin {
AD_POSITION: {
NO_CHANGE: number;

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
export interface AlipayOrder {
@@ -67,7 +67,7 @@ export interface AlipayOrder {
* Requires Cordova plugin: `cordova-alipay-base`. For more info, please see the [Alipay plugin docs](https://github.com/xueron/cordova-alipay-base).
*
* @usage
* ```
* ```typescript
* import { Alipay, AlipayOrder } from '@ionic-native/alipay';
*
* constructor(private alipay: Alipay) {
@@ -103,7 +103,7 @@ export interface AlipayOrder {
install: 'ionic plugin add https://github.com/xueron/cordova-alipay-base --variable APP_ID=your_app_id'
})
@Injectable()
export class Alipay {
export class Alipay extends IonicNativePlugin {
/**
* Open Alipay to perform App pay
* @param order { AlipayOrder } alipay options
@@ -112,4 +112,3 @@ export class Alipay {
@Cordova()
pay(order: AlipayOrder): Promise<any> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface AFAAuthOptions {
@@ -102,7 +102,7 @@ export interface AFAEncryptResponse {
* This plugin will open a native dialog fragment prompting the user to authenticate using their fingerprint. If the device has a secure lockscreen (pattern, PIN, or password), the user may opt to authenticate using that method as a backup.
* @usage
* ```typescript
* import { AndroidFingerprintAuth, AFAAuthOptions } from '@ionic-native/android-fingerprint-auth';
* import { AndroidFingerprintAuth } from '@ionic-native/android-fingerprint-auth';
*
* constructor(private androidFingerprintAuth: AndroidFingerprintAuth) { }
*
@@ -114,18 +114,18 @@ export interface AFAEncryptResponse {
* if(result.isAvailable){
* // it is available
*
* this.androidFingerprintAuth.encrypt({ clientId: "myAppName", username: "myUsername", password: "myPassword" })
* this.androidFingerprintAuth.encrypt({ clientId: 'myAppName', username: 'myUsername', password: 'myPassword' })
* .then(result => {
* if (result.withFingerprint) {
* console.log("Successfully encrypted credentials.");
* console.log("Encrypted credentials: " + result.token);
* console.log('Successfully encrypted credentials.');
* console.log('Encrypted credentials: ' + result.token);
* } else if (result.withBackup) {
* console.log('Successfully authenticated with backup password!');
* } else console.log('Didn\'t authenticate!');
* })
* .catch(error => {
* if (error === "Cancelled") {
* console.log("Fingerprint authentication cancelled");
* if (error === this.androidFingerprintAuth.ERRORS.FINGERPRINT_CANCELLED) {
* console.log('Fingerprint authentication cancelled');
* } else console.error(error)
* });
*
@@ -148,7 +148,28 @@ export interface AFAEncryptResponse {
platforms: ['Android']
})
@Injectable()
export class AndroidFingerprintAuth {
export class AndroidFingerprintAuth extends IonicNativePlugin {
ERRORS: {
BAD_PADDING_EXCEPTION: 'BAD_PADDING_EXCEPTION',
CERTIFICATE_EXCEPTION: 'CERTIFICATE_EXCEPTION',
FINGERPRINT_CANCELLED: 'FINGERPRINT_CANCELLED',
FINGERPRINT_DATA_NOT_DELETED: 'FINGERPRINT_DATA_NOT_DELETED',
FINGERPRINT_ERROR: 'FINGERPRINT_ERROR',
FINGERPRINT_NOT_AVAILABLE: 'FINGERPRINT_NOT_AVAILABLE',
FINGERPRINT_PERMISSION_DENIED: 'FINGERPRINT_PERMISSION_DENIED',
FINGERPRINT_PERMISSION_DENIED_SHOW_REQUEST: 'FINGERPRINT_PERMISSION_DENIED_SHOW_REQUEST',
ILLEGAL_BLOCK_SIZE_EXCEPTION: 'ILLEGAL_BLOCK_SIZE_EXCEPTION',
INIT_CIPHER_FAILED: 'INIT_CIPHER_FAILED',
INVALID_ALGORITHM_PARAMETER_EXCEPTION: 'INVALID_ALGORITHM_PARAMETER_EXCEPTION',
IO_EXCEPTION: 'IO_EXCEPTION',
JSON_EXCEPTION: 'JSON_EXCEPTION',
MINIMUM_SDK: 'MINIMUM_SDK',
MISSING_ACTION_PARAMETERS: 'MISSING_ACTION_PARAMETERS',
MISSING_PARAMETERS: 'MISSING_PARAMETERS',
NO_SUCH_ALGORITHM_EXCEPTION: 'NO_SUCH_ALGORITHM_EXCEPTION',
SECURITY_EXCEPTION: 'SECURITY_EXCEPTION'
};
/**
* Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
@@ -156,7 +177,7 @@ export class AndroidFingerprintAuth {
* @returns {Promise<any>}
*/
@Cordova()
encrypt(options: AFAAuthOptions): Promise<AFAEncryptResponse> {return; }
encrypt(options: AFAAuthOptions): Promise<AFAEncryptResponse> { return; }
/**
* Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
@@ -164,19 +185,19 @@ export class AndroidFingerprintAuth {
* @returns {Promise<any>}
*/
@Cordova()
decrypt(options: AFAAuthOptions): Promise<AFADecryptOptions> {return; }
decrypt(options: AFAAuthOptions): Promise<AFADecryptOptions> { return; }
/**
* Check if service is available
* @returns {Promise<any>} Returns a Promise that resolves if fingerprint auth is available on the device
*/
@Cordova()
isAvailable(): Promise<{isAvailable: boolean}> { return; }
isAvailable(): Promise<{ isAvailable: boolean }> { return; }
/**
* Delete the cipher used for encryption and decryption by username
* @returns {Promise<any>} Returns a Promise that resolves if the cipher was successfully deleted
*/
@Cordova()
delete(options: {clientId: string; username: string; }): Promise<{deleted: boolean}> { return; }
delete(options: { clientId: string; username: string; }): Promise<{ deleted: boolean }> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Android Full Screen
@@ -29,7 +29,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android']
})
@Injectable()
export class AndroidFullScreen {
export class AndroidFullScreen extends IonicNativePlugin {
/**
* Is this plugin supported?
* @return {Promise<void>}

View File

@@ -0,0 +1,218 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
/**
* @name Android Permissions
* @description
* 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
*
* @usage
* ```
* import { AndroidPermissions } from '@ionic-native/android-permissions';
*
*
* constructor(private androidPermissions: AndroidPermissions) { }
*
* ...
*
* this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(
* success => console.log('Permission granted'),
* err => this.androidPermissions.requestPermissions(this.androidPermissions.PERMISSION.CAMERA)
* );
*
* this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.CAMERA, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);
*
* ```
*/
@Plugin({
pluginName: 'AndroidPermissions',
plugin: 'cordova-plugin-android-permissions',
pluginRef: 'cordova.plugins.permissions',
repo: 'https://github.com/NeoLSN/cordova-plugin-android-permissions',
platforms: ['Android']
})
@Injectable()
export class AndroidPermissions extends IonicNativePlugin {
PERMISSION: {
ACCESS_CHECKIN_PROPERTIES: 'android.permission.ACCESS_CHECKIN_PROPERTIES',
ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION',
ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION',
ACCESS_LOCATION_EXTRA_COMMANDS: 'android.permission.ACCESS_LOCATION_EXTRA_COMMANDS',
ACCESS_MOCK_LOCATION: 'android.permission.ACCESS_MOCK_LOCATION',
ACCESS_NETWORK_STATE: 'android.permission.ACCESS_NETWORK_STATE',
ACCESS_SURFACE_FLINGER: 'android.permission.ACCESS_SURFACE_FLINGER',
ACCESS_WIFI_STATE: 'android.permission.ACCESS_WIFI_STATE',
ACCOUNT_MANAGER: 'android.permission.ACCOUNT_MANAGER',
ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL',
AUTHENTICATE_ACCOUNTS: 'android.permission.AUTHENTICATE_ACCOUNTS',
BATTERY_STATS: 'android.permission.BATTERY_STATS',
BIND_ACCESSIBILITY_SERVICE: 'android.permission.BIND_ACCESSIBILITY_SERVICE',
BIND_APPWIDGET: 'android.permission.BIND_APPWIDGET',
BIND_CARRIER_MESSAGING_SERVICE: 'android.permission.BIND_CARRIER_MESSAGING_SERVICE',
BIND_DEVICE_ADMIN: 'android.permission.BIND_DEVICE_ADMIN',
BIND_DREAM_SERVICE: 'android.permission.BIND_DREAM_SERVICE',
BIND_INPUT_METHOD: 'android.permission.BIND_INPUT_METHOD',
BIND_NFC_SERVICE: 'android.permission.BIND_NFC_SERVICE',
BIND_NOTIFICATION_LISTENER_SERVICE: 'android.permission.BIND_NOTIFICATION_LISTENER_SERVICE',
BIND_PRINT_SERVICE: 'android.permission.BIND_PRINT_SERVICE',
BIND_REMOTEVIEWS: 'android.permission.BIND_REMOTEVIEWS',
BIND_TEXT_SERVICE: 'android.permission.BIND_TEXT_SERVICE',
BIND_TV_INPUT: 'android.permission.BIND_TV_INPUT',
BIND_VOICE_INTERACTION: 'android.permission.BIND_VOICE_INTERACTION',
BIND_VPN_SERVICE: 'android.permission.BIND_VPN_SERVICE',
BIND_WALLPAPER: 'android.permission.BIND_WALLPAPER',
BLUETOOTH: 'android.permission.BLUETOOTH',
BLUETOOTH_ADMIN: 'android.permission.BLUETOOTH_ADMIN',
BLUETOOTH_PRIVILEGED: 'android.permission.BLUETOOTH_PRIVILEGED',
BODY_SENSORS: 'android.permission.BODY_SENSORS',
BRICK: 'android.permission.BRICK',
BROADCAST_PACKAGE_REMOVED: 'android.permission.BROADCAST_PACKAGE_REMOVED',
BROADCAST_SMS: 'android.permission.BROADCAST_SMS',
BROADCAST_STICKY: 'android.permission.BROADCAST_STICKY',
BROADCAST_WAP_PUSH: 'android.permission.BROADCAST_WAP_PUSH',
CALL_PHONE: 'android.permission.CALL_PHONE',
CALL_PRIVILEGED: 'android.permission.CALL_PRIVILEGED',
CAMERA: 'android.permission.CAMERA',
CAPTURE_AUDIO_OUTPUT: 'android.permission.CAPTURE_AUDIO_OUTPUT',
CAPTURE_SECURE_VIDEO_OUTPUT: 'android.permission.CAPTURE_SECURE_VIDEO_OUTPUT',
CAPTURE_VIDEO_OUTPUT: 'android.permission.CAPTURE_VIDEO_OUTPUT',
CHANGE_COMPONENT_ENABLED_STATE: 'android.permission.CHANGE_COMPONENT_ENABLED_STATE',
CHANGE_CONFIGURATION: 'android.permission.CHANGE_CONFIGURATION',
CHANGE_NETWORK_STATE: 'android.permission.CHANGE_NETWORK_STATE',
CHANGE_WIFI_MULTICAST_STATE: 'android.permission.CHANGE_WIFI_MULTICAST_STATE',
CHANGE_WIFI_STATE: 'android.permission.CHANGE_WIFI_STATE',
CLEAR_APP_CACHE: 'android.permission.CLEAR_APP_CACHE',
CLEAR_APP_USER_DATA: 'android.permission.CLEAR_APP_USER_DATA',
CONTROL_LOCATION_UPDATES: 'android.permission.CONTROL_LOCATION_UPDATES',
DELETE_CACHE_FILES: 'android.permission.DELETE_CACHE_FILES',
DELETE_PACKAGES: 'android.permission.DELETE_PACKAGES',
DEVICE_POWER: 'android.permission.DEVICE_POWER',
DIAGNOSTIC: 'android.permission.DIAGNOSTIC',
DISABLE_KEYGUARD: 'android.permission.DISABLE_KEYGUARD',
DUMP: 'android.permission.DUMP',
EXPAND_STATUS_BAR: 'android.permission.EXPAND_STATUS_BAR',
FACTORY_TEST: 'android.permission.FACTORY_TEST',
FLASHLIGHT: 'android.permission.FLASHLIGHT',
FORCE_BACK: 'android.permission.FORCE_BACK',
GET_ACCOUNTS: 'android.permission.GET_ACCOUNTS',
GET_PACKAGE_SIZE: 'android.permission.GET_PACKAGE_SIZE',
GET_TASKS: 'android.permission.GET_TASKS',
GET_TOP_ACTIVITY_INFO: 'android.permission.GET_TOP_ACTIVITY_INFO',
GLOBAL_SEARCH: 'android.permission.GLOBAL_SEARCH',
HARDWARE_TEST: 'android.permission.HARDWARE_TEST',
INJECT_EVENTS: 'android.permission.INJECT_EVENTS',
INSTALL_LOCATION_PROVIDER: 'android.permission.INSTALL_LOCATION_PROVIDER',
INSTALL_PACKAGES: 'android.permission.INSTALL_PACKAGES',
INSTALL_SHORTCUT: 'com.android.launcher.permission.INSTALL_SHORTCUT',
INTERNAL_SYSTEM_WINDOW: 'android.permission.INTERNAL_SYSTEM_WINDOW',
INTERNET: 'android.permission.INTERNET',
KILL_BACKGROUND_PROCESSES: 'android.permission.KILL_BACKGROUND_PROCESSES',
LOCATION_HARDWARE: 'android.permission.LOCATION_HARDWARE',
MANAGE_ACCOUNTS: 'android.permission.MANAGE_ACCOUNTS',
MANAGE_APP_TOKENS: 'android.permission.MANAGE_APP_TOKENS',
MANAGE_DOCUMENTS: 'android.permission.MANAGE_DOCUMENTS',
MASTER_CLEAR: 'android.permission.MASTER_CLEAR',
MEDIA_CONTENT_CONTROL: 'android.permission.MEDIA_CONTENT_CONTROL',
MODIFY_AUDIO_SETTINGS: 'android.permission.MODIFY_AUDIO_SETTINGS',
MODIFY_PHONE_STATE: 'android.permission.MODIFY_PHONE_STATE',
MOUNT_FORMAT_FILESYSTEMS: 'android.permission.MOUNT_FORMAT_FILESYSTEMS',
MOUNT_UNMOUNT_FILESYSTEMS: 'android.permission.MOUNT_UNMOUNT_FILESYSTEMS',
NFC: 'android.permission.NFC',
PERSISTENT_ACTIVITY: 'android.permission.PERSISTENT_ACTIVITY',
PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS',
READ_CALENDAR: 'android.permission.READ_CALENDAR',
READ_CALL_LOG: 'android.permission.READ_CALL_LOG',
READ_CONTACTS: 'android.permission.READ_CONTACTS',
READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',
READ_FRAME_BUFFER: 'android.permission.READ_FRAME_BUFFER',
READ_HISTORY_BOOKMARKS: 'com.android.browser.permission.READ_HISTORY_BOOKMARKS',
READ_INPUT_STATE: 'android.permission.READ_INPUT_STATE',
READ_LOGS: 'android.permission.READ_LOGS',
READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE',
READ_PROFILE: 'android.permission.READ_PROFILE',
READ_SMS: 'android.permission.READ_SMS',
READ_SOCIAL_STREAM: 'android.permission.READ_SOCIAL_STREAM',
READ_SYNC_SETTINGS: 'android.permission.READ_SYNC_SETTINGS',
READ_SYNC_STATS: 'android.permission.READ_SYNC_STATS',
READ_USER_DICTIONARY: 'android.permission.READ_USER_DICTIONARY',
READ_VOICEMAIL: 'com.android.voicemail.permission.READ_VOICEMAIL',
REBOOT: 'android.permission.REBOOT',
RECEIVE_BOOT_COMPLETED: 'android.permission.RECEIVE_BOOT_COMPLETED',
RECEIVE_MMS: 'android.permission.RECEIVE_MMS',
RECEIVE_SMS: 'android.permission.RECEIVE_SMS',
RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH',
RECORD_AUDIO: 'android.permission.RECORD_AUDIO',
REORDER_TASKS: 'android.permission.REORDER_TASKS',
RESTART_PACKAGES: 'android.permission.RESTART_PACKAGES',
SEND_RESPOND_VIA_MESSAGE: 'android.permission.SEND_RESPOND_VIA_MESSAGE',
SEND_SMS: 'android.permission.SEND_SMS',
SET_ACTIVITY_WATCHER: 'android.permission.SET_ACTIVITY_WATCHER',
SET_ALARM: 'com.android.alarm.permission.SET_ALARM',
SET_ALWAYS_FINISH: 'android.permission.SET_ALWAYS_FINISH',
SET_ANIMATION_SCALE: 'android.permission.SET_ANIMATION_SCALE',
SET_DEBUG_APP: 'android.permission.SET_DEBUG_APP',
SET_ORIENTATION: 'android.permission.SET_ORIENTATION',
SET_POINTER_SPEED: 'android.permission.SET_POINTER_SPEED',
SET_PREFERRED_APPLICATIONS: 'android.permission.SET_PREFERRED_APPLICATIONS',
SET_PROCESS_LIMIT: 'android.permission.SET_PROCESS_LIMIT',
SET_TIME: 'android.permission.SET_TIME',
SET_TIME_ZONE: 'android.permission.SET_TIME_ZONE',
SET_WALLPAPER: 'android.permission.SET_WALLPAPER',
SET_WALLPAPER_HINTS: 'android.permission.SET_WALLPAPER_HINTS',
SIGNAL_PERSISTENT_PROCESSES: 'android.permission.SIGNAL_PERSISTENT_PROCESSES',
STATUS_BAR: 'android.permission.STATUS_BAR',
SUBSCRIBED_FEEDS_READ: 'android.permission.SUBSCRIBED_FEEDS_READ',
SUBSCRIBED_FEEDS_WRITE: 'android.permission.SUBSCRIBED_FEEDS_WRITE',
SYSTEM_ALERT_WINDOW: 'android.permission.SYSTEM_ALERT_WINDOW',
TRANSMIT_IR: 'android.permission.TRANSMIT_IR',
UNINSTALL_SHORTCUT: 'com.android.launcher.permission.UNINSTALL_SHORTCUT',
UPDATE_DEVICE_STATS: 'android.permission.UPDATE_DEVICE_STATS',
USE_CREDENTIALS: 'android.permission.USE_CREDENTIALS',
USE_SIP: 'android.permission.USE_SIP',
VIBRATE: 'android.permission.VIBRATE',
WAKE_LOCK: 'android.permission.WAKE_LOCK',
WRITE_APN_SETTINGS: 'android.permission.WRITE_APN_SETTINGS',
WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR',
WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG',
WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS',
WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE',
WRITE_GSERVICES: 'android.permission.WRITE_GSERVICES',
WRITE_HISTORY_BOOKMARKS: 'com.android.browser.permission.WRITE_HISTORY_BOOKMARKS',
WRITE_PROFILE: 'android.permission.WRITE_PROFILE',
WRITE_SECURE_SETTINGS: 'android.permission.WRITE_SECURE_SETTINGS',
WRITE_SETTINGS: 'android.permission.WRITE_SETTINGS',
WRITE_SMS: 'android.permission.WRITE_SMS',
WRITE_SOCIAL_STREAM: 'android.permission.WRITE_SOCIAL_STREAM',
WRITE_SYNC_SETTINGS: 'android.permission.WRITE_SYNC_SETTINGS',
WRITE_USER_DICTIONARY: 'android.permission.WRITE_USER_DICTIONARY',
WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',
};
/**
* Check permission
* @param permission {string} The name of the permission
* @return {Promise<any>} Returns a promise
*/
@Cordova()
checkPermission(permission: string): Promise<any> { return; }
/**
* Request permissions
* @param permissions {array} An array with permissions
* @return {Promise<any>} Returns a promise
*/
@Cordova()
requestPermissions(permissions: string): Promise<any> { return; }
/**
* This function still works now, will not support in the future.
* @param permission {string} The name of the permission
* @return {Promise<any>} Returns a promise
*/
@Cordova()
hasPermission(permission: string): Promise<any> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name App Availability
@@ -40,7 +40,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android', 'iOS']
})
@Injectable()
export class AppAvailability {
export class AppAvailability extends IonicNativePlugin {
/**
* Checks if an app is available on device

View File

@@ -0,0 +1,42 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
/**
* @name App Minimize
* @description
* AppMinimize is a plugin to minimize the application on android devices
*
* @usage
* ```typescript
* import { AppMinimize } from '@ionic-native/app-minimize';
*
*
* constructor(private appMinimize: AppMinimize) { }
*
* ...
*
* this.plugin.minimize().then(
* success => console.log('Closed'),
* err => console.log('Something went wrong')
* );
*
* ```
*/
@Plugin({
pluginName: 'AppMinimize',
plugin: 'https://github.com/tomloprod/cordova-plugin-appminimize.git',
pluginRef: 'cordova.plugins.appMinimize',
repo: 'https://github.com/tomloprod/cordova-plugin-appminimize',
platforms: ['Android']
})
@Injectable()
export class AppMinimize extends IonicNativePlugin {
/**
* Minimizes the application
* @return {Promise<any>}
*/
@Cordova()
minimize(): Promise<any> { return; }
}

View File

@@ -1,4 +1,4 @@
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
import { Injectable } from '@angular/core';
@@ -11,11 +11,12 @@ import { Injectable } from '@angular/core';
* ```typescript
* import { AppPreferences } from '@ionic-native/app-preferences';
*
* constructor(private appPreferences: AppPreferences) {
* constructor(private appPreferences: AppPreferences) { }
*
* this.appPreferences.fetch('key').then((res) => { console.log(res); });
* ...
*
* this.appPreferences.fetch('key').then((res) => { console.log(res); });
*
* }
* ```
*
*/
@@ -27,7 +28,7 @@ import { Injectable } from '@angular/core';
platforms: ['Android', 'BlackBerry 10', 'Browser', 'iOS', 'OS X', 'Windows 8', 'Windows Phone']
})
@Injectable()
export class AppPreferences {
export class AppPreferences extends IonicNativePlugin {
/**
* Get a preference value
@@ -46,13 +47,13 @@ export class AppPreferences {
*
* @param {string} dict Dictionary for key (OPTIONAL)
* @param {string} key Key
* @param {string} value Value
* @param {any} value Value
* @return {Promise<any>} Returns a promise
*/
@Cordova({
callbackOrder: 'reverse'
})
store(dict: string, key: string, value?: string): Promise<any> {
store(dict: string, key: string, value?: any): Promise<any> {
return;
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, CordovaProperty, Plugin } from '@ionic-native/core';
import { Cordova, CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-native/core';
declare var window;
@@ -110,12 +110,24 @@ export interface AppUrls {
* constructor(private appRate: AppRate) { }
*
* ...
* // set certain preferences
* this.appRate.preferences.storeAppURL = {
* ios: '<app_id>',
* android: 'market://details?id=<package_name>',
* windows: 'ms-windows-store://review/?ProductId=<store_id>'
* };
*
* this.appRate.preferences.storeAppURL = {
* ios: '<my_app_id>',
* this.appRate.promptForRating(true);
*
* // or, override the whole preferences object
* this.appRate.preferences = {
* usesUntilPrompt: 3,
* storeAppURL: {
* ios: '<app_id>',
* android: 'market://details?id=<package_name>',
* windows: 'ms-windows-store://review/?ProductId=<Store_ID>'
* };
* windows: 'ms-windows-store://review/?ProductId=<store_id>'
* }
* };
*
* this.appRate.promptForRating(false);
* ```
@@ -134,7 +146,7 @@ export interface AppUrls {
platforms: ['Android', 'iOS', 'Windows (experimental)']
})
@Injectable()
export class AppRate {
export class AppRate extends IonicNativePlugin {
/**
* Configure various settings for the Rating View.

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
/**
@@ -19,7 +19,7 @@ import { Injectable } from '@angular/core';
*
* Then use the following code:
*
* ```
* ```typescript
* import { AppUpdate } from '@ionic-native/app-update';
*
* constructor(private appUpdate: AppUpdate) {
@@ -28,8 +28,6 @@ import { Injectable } from '@angular/core';
* this.appUpdate.checkAppUpdate(updateUrl);
*
* }
*
*
* ```
*
* The plugin will compare the app version and update it automatically if the API has a newer version to install.
@@ -42,7 +40,7 @@ import { Injectable } from '@angular/core';
platforms: ['Android']
})
@Injectable()
export class AppUpdate {
export class AppUpdate extends IonicNativePlugin {
/**
* Check and update
* @param updateUrl {string} update api url
@@ -53,4 +51,3 @@ export class AppUpdate {
})
checkAppUpdate(updateUrl: string): Promise<any> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
@@ -34,7 +34,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android', 'iOS']
})
@Injectable()
export class AppVersion {
export class AppVersion extends IonicNativePlugin {
/**
* Returns the name of the app

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs';
import { Injectable } from '@angular/core';
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
* Plugin to serve ads through native Appodeal SDKs
*
* @usage
* ```
* ```typescript
* import { Appodeal } from '@ionic-native/appodeal';
*
* constructor(private appodeal: Appodeal) {
@@ -18,9 +18,6 @@ import { Injectable } from '@angular/core';
* appodeal.show(appodeal.AD_TYPES.REWARDED_VIDEO);
*
* }
*
*
*
* ```
*/
@Plugin({
@@ -28,10 +25,10 @@ import { Injectable } from '@angular/core';
plugin: 'https://github.com/appodeal/appodeal-cordova-plugin',
pluginRef: 'Appodeal',
repo: 'https://github.com/appodeal/appodeal-cordova-plugin.git',
platforms: [ 'iOS', 'Android' ]
platforms: ['iOS', 'Android']
})
@Injectable()
export class Appodeal {
export class Appodeal extends IonicNativePlugin {
// available types of advertisements
readonly AD_TYPES = {
INTERSTITIAL: 1,
@@ -49,7 +46,7 @@ export class Appodeal {
* @param {number} adType
*/
@Cordova()
initialize(appKey: string, adType: number): void {};
initialize(appKey: string, adType: number): void { };
/**
* check if SDK has been initialized
@@ -76,21 +73,21 @@ export class Appodeal {
showWithPlacement(
adType: number,
placement: any
): Promise<any> { return; };
): Promise<any> { return; };
/**
* hide ad of specified type
* @param {number} adType
*/
@Cordova()
hide(adType: number): void {};
hide(adType: number): void { };
/**
* confirm use of ads of specified type
* @param {number} adType
*/
@Cordova()
confirm(adType: number): void {};
confirm(adType: number): void { };
/**
* check if ad of specified type has been loaded
@@ -114,69 +111,69 @@ export class Appodeal {
* @param autoCache
*/
@Cordova()
setAutoCache(adType: number, autoCache: any): void {};
setAutoCache(adType: number, autoCache: any): void { };
/**
* forcefully cache an ad by type
* @param {number} adType
*/
@Cordova()
cache(adType: number): void {};
cache(adType: number): void { };
/**
*
* @param {boolean} set
*/
@Cordova()
setOnLoadedTriggerBoth(set: boolean): void {};
setOnLoadedTriggerBoth(set: boolean): void { };
/**
* enable or disable Smart Banners
* @param {boolean} enabled
*/
@Cordova()
setSmartBanners(enabled: boolean): void {};
setSmartBanners(enabled: boolean): void { };
/**
* enable or disable banner backgrounds
* @param {boolean} enabled
*/
@Cordova()
setBannerBackground(enabled: boolean): void {};
setBannerBackground(enabled: boolean): void { };
/**
* enable or disable banner animations
* @param {boolean} enabled
*/
@Cordova()
setBannerAnimation(enabled: boolean): void {};
setBannerAnimation(enabled: boolean): void { };
/**
*
* @param value
*/
@Cordova()
set728x90Banners(value: any): void {};
set728x90Banners(value: any): void { };
/**
* enable or disable logging
* @param {boolean} logging
*/
@Cordova()
setLogging(logging: boolean): void {};
setLogging(logging: boolean): void { };
/**
* enable or disable testing mode
* @param {boolean} testing
*/
@Cordova()
setTesting(testing: boolean): void {};
setTesting(testing: boolean): void { };
/**
* reset device ID
*/
@Cordova()
resetUUID(): void {};
resetUUID(): void { };
/**
* get version of Appdeal SDK
@@ -190,7 +187,7 @@ export class Appodeal {
* @param {number} adType
*/
@Cordova()
disableNetwork(network?: string, adType?: number): void {};
disableNetwork(network?: string, adType?: number): void { };
/**
*
@@ -198,54 +195,54 @@ export class Appodeal {
* @param {number} adType
*/
@Cordova()
disableNetworkType(network?: string, adType?: number): void {};
disableNetworkType(network?: string, adType?: number): void { };
/**
* disable Location permissions for Appodeal SDK
*/
@Cordova()
disableLocationPermissionCheck(): void {};
disableLocationPermissionCheck(): void { };
/**
* disable Storage permissions for Appodeal SDK
*/
@Cordova()
disableWriteExternalStoragePermissionCheck(): void {};
disableWriteExternalStoragePermissionCheck(): void { };
/**
* enable event listeners
* @param {boolean} enabled
*/
@Cordova()
enableInterstitialCallbacks(enabled: boolean): void {};
enableInterstitialCallbacks(enabled: boolean): void { };
/**
* enable event listeners
* @param {boolean} enabled
*/
@Cordova()
enableSkippableVideoCallbacks(enabled: boolean): void {};
enableSkippableVideoCallbacks(enabled: boolean): void { };
/**
* enable event listeners
* @param {boolean} enabled
*/
@Cordova()
enableNonSkippableVideoCallbacks(enabled: boolean): void {};
enableNonSkippableVideoCallbacks(enabled: boolean): void { };
/**
* enable event listeners
* @param {boolean} enabled
*/
@Cordova()
enableBannerCallbacks(enabled: boolean): void {};
enableBannerCallbacks(enabled: boolean): void { };
/**
* enable event listeners
* @param {boolean} enabled
*/
@Cordova()
enableRewardedVideoCallbacks(enabled: boolean): void {};
enableRewardedVideoCallbacks(enabled: boolean): void { };
/**
*
@@ -253,7 +250,7 @@ export class Appodeal {
* @param {boolean} value
*/
@Cordova()
setCustomBooleanRule(name: string, value: boolean): void {};
setCustomBooleanRule(name: string, value: boolean): void { };
/**
*
@@ -261,7 +258,7 @@ export class Appodeal {
* @param {number} value
*/
@Cordova()
setCustomIntegerRule(name: string, value: number): void {};
setCustomIntegerRule(name: string, value: number): void { };
/**
* set rule with float value
@@ -269,7 +266,7 @@ export class Appodeal {
* @param {number} value
*/
@Cordova()
setCustomDoubleRule(name: string, value: number): void {};
setCustomDoubleRule(name: string, value: number): void { };
/**
* set rule with string value
@@ -277,77 +274,77 @@ export class Appodeal {
* @param {string} value
*/
@Cordova()
setCustomStringRule(name: string, value: string): void {};
setCustomStringRule(name: string, value: string): void { };
/**
* set ID preference in Appodeal for current user
* @param id
*/
@Cordova()
setUserId(id: any): void {};
setUserId(id: any): void { };
/**
* set Email preference in Appodeal for current user
* @param email
*/
@Cordova()
setEmail(email: any): void {};
setEmail(email: any): void { };
/**
* set Birthday preference in Appodeal for current user
* @param birthday
*/
@Cordova()
setBirthday(birthday: any): void {};
setBirthday(birthday: any): void { };
/**
* et Age preference in Appodeal for current user
* @param age
*/
@Cordova()
setAge(age: any): void {};
setAge(age: any): void { };
/**
* set Gender preference in Appodeal for current user
* @param gender
*/
@Cordova()
setGender(gender: any): void {};
setGender(gender: any): void { };
/**
* set Occupation preference in Appodeal for current user
* @param occupation
*/
@Cordova()
setOccupation(occupation: any): void {};
setOccupation(occupation: any): void { };
/**
* set Relation preference in Appodeal for current user
* @param relation
*/
@Cordova()
setRelation(relation: any): void {};
setRelation(relation: any): void { };
/**
* set Smoking preference in Appodeal for current user
* @param smoking
*/
@Cordova()
setSmoking(smoking: any): void {};
setSmoking(smoking: any): void { };
/**
* set Alcohol preference in Appodeal for current user
* @param alcohol
*/
@Cordova()
setAlcohol(alcohol: any): void {};
setAlcohol(alcohol: any): void { };
/**
* set Interests preference in Appodeal for current user
* @param interests
*/
@Cordova()
setInterests(interests: any): void {};
setInterests(interests: any): void { };
@Cordova({
eventObservable: true,

View File

@@ -0,0 +1,47 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
/**
* @name Autostart
* @description
* This plugin will start automatically your Android app after the every boot or the auto-update of your application.
* You can enable or disable the autostart function in your app.
*
* @usage
* ```typescript
* import { Autostart } from '@ionic-native/autostart';
*
*
* constructor(private autostart: Autostart) { }
*
* ...
*
* this.autostart.enable();
*
* this.autostart.disable();
*
* ```
*/
@Plugin({
pluginName: 'Autostart',
plugin: 'cordova-plugin-autostart',
pluginRef: 'cordova.plugins.autoStart',
repo: 'https://github.com/ToniKorin/cordova-plugin-autostart',
platforms: ['Android']
})
@Injectable()
export class Autostart extends IonicNativePlugin {
/**
* Enable the automatic startup after the boot
*/
@Cordova({ sync: true })
enable(): void { }
/**
* Disable the automatic startup after the boot
*/
@Cordova({ sync: true })
disable(): void { }
}

View File

@@ -1,4 +1,4 @@
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
declare var window;
@@ -63,7 +63,7 @@ export interface BackgroundFetchConfig {
platforms: ['iOS']
})
@Injectable()
export class BackgroundFetch {
export class BackgroundFetch extends IonicNativePlugin {
/**

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
declare var window;
@@ -311,7 +311,7 @@ export interface BackgroundGeolocationConfig {
platforms: ['iOS', 'Android', 'Windows Phone 8']
})
@Injectable()
export class BackgroundGeolocation {
export class BackgroundGeolocation extends IonicNativePlugin {
/**
* Set location service provider @see https://github.com/mauron85/cordova-plugin-background-geolocation/wiki/Android-providers
@@ -448,13 +448,13 @@ export class BackgroundGeolocation {
/**
* Display app settings to change permissions
*/
@Cordova({sync: true})
@Cordova({ sync: true })
showAppSettings(): void { }
/**
* Display device location settings
*/
@Cordova({sync: true})
@Cordova({ sync: true })
showLocationSettings(): void { }
/**

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
@@ -73,7 +73,7 @@ export interface BackgroundModeConfiguration {
platforms: ['Android', 'iOS', 'Windows Phone 8']
})
@Injectable()
export class BackgroundMode {
export class BackgroundMode extends IonicNativePlugin {
/**
* Enable the background mode.
@@ -148,7 +148,16 @@ export class BackgroundMode {
platforms: ['Android'],
sync: true
})
moveToBackground(): void {}
moveToBackground(): void { }
/**
* Enable GPS-tracking in background (Android).
*/
@Cordova({
platforms: ['Android'],
sync: true
})
disableWebViewOptimizations (): void { }
/**
* Android allows to programmatically move from background to foreground.
@@ -157,7 +166,7 @@ export class BackgroundMode {
platforms: ['Android'],
sync: true
})
moveToForeground(): void {}
moveToForeground(): void { }
/**
* Override the back button on Android to go to background instead of closing the app.
@@ -166,7 +175,7 @@ export class BackgroundMode {
platforms: ['Android'],
sync: true
})
overrideBackButton(): void {}
overrideBackButton(): void { }
/**
* Exclude the app from the recent task list works on Android 5.0+.
@@ -175,7 +184,7 @@ export class BackgroundMode {
platforms: ['Android'],
sync: true
})
excludeFromTaskList(): void {}
excludeFromTaskList(): void { }
/**
* The method works async instead of isActive() or isEnabled().
@@ -192,7 +201,7 @@ export class BackgroundMode {
platforms: ['Android'],
sync: true
})
wakeUp(): void {}
wakeUp(): void { }
/**
* Turn screen on and show app even locked
@@ -201,6 +210,6 @@ export class BackgroundMode {
platforms: ['Android'],
sync: true
})
unlock(): void {}
unlock(): void { }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
@@ -9,7 +9,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
* This plugin adds turning on/off the device backlight.
*
* @usage
* ```
* ```typescript
* import { Backlight } from '@ionic-native/backlight';
*
* constructor(private backlight: Backlight) { }
@@ -32,7 +32,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
platforms: ['Android']
})
@Injectable()
export class Backlight {
export class Backlight extends IonicNativePlugin {
/**
* This function turns backlight on

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
@@ -30,7 +30,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android', 'iOS', 'Browser', 'Windows', 'Amazon FireOS', 'Windows Phone 8']
})
@Injectable()
export class Badge {
export class Badge extends IonicNativePlugin {
/**
* Clear the badge of the app icon.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface BarcodeScannerOptions {
@@ -56,6 +56,12 @@ export interface BarcodeScannerOptions {
}
export interface BarcodeScanResult {
format: 'QR_CODE' | 'DATA_MATRIX' | 'UPC_E' | 'UPC_A' | 'EAN_8' | 'EAN_13' | 'CODE_128' | 'CODE_39' | 'CODE_93' | 'CODABAR' | 'ITF' | 'RSS14' | 'RSS_EXPANDED' | 'PDF417' | 'AZTEC' | 'MSI';
cancelled: boolean;
text: string;
}
/**
* @name Barcode Scanner
* @description
@@ -80,6 +86,7 @@ export interface BarcodeScannerOptions {
* ```
* @interfaces
* BarcodeScannerOptions
* BarcodeScanResult
*/
@Plugin({
pluginName: 'BarcodeScanner',
@@ -89,7 +96,7 @@ export interface BarcodeScannerOptions {
platforms: ['Android', 'iOS', 'Windows Phone 8', 'Windows 10', 'Windows 8', 'BlackBerry 10', 'Browser']
})
@Injectable()
export class BarcodeScanner {
export class BarcodeScanner extends IonicNativePlugin {
Encode: {
TEXT_TYPE: string;
@@ -111,7 +118,7 @@ export class BarcodeScanner {
@Cordova({
callbackOrder: 'reverse'
})
scan(options?: BarcodeScannerOptions): Promise<any> { return; }
scan(options?: BarcodeScannerOptions): Promise<BarcodeScanResult> { return; }
/**
* Encodes data into a barcode.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Base64 To Gallery
@@ -28,7 +28,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android', 'iOS', 'Windows Phone 8']
})
@Injectable()
export class Base64ToGallery {
export class Base64ToGallery extends IonicNativePlugin {
/**
* Converts a base64 string to an image file in the device gallery
@@ -40,7 +40,7 @@ export class Base64ToGallery {
successIndex: 2,
errorIndex: 3
})
base64ToGallery(data: string, options?: {prefix?: string; mediaScanner?: boolean}): Promise<any> {
base64ToGallery(data: string, options?: { prefix?: string; mediaScanner?: boolean }): Promise<any> {
return;
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface BatteryStatusResponse {
@@ -52,7 +52,7 @@ export interface BatteryStatusResponse {
platforms: ['Amazon Fire OS', 'iOS', 'Android', 'BlackBerry 10', 'Windows Phone 7', 'Windows Phone 8', 'Windows', 'Firefox OS', 'Browser']
})
@Injectable()
export class BatteryStatus {
export class BatteryStatus extends IonicNativePlugin {
/**
* Watch the change in battery level

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
@@ -35,59 +35,59 @@ import { Observable } from 'rxjs/Observable';
*
* ```typescript
* {
* "name": "Battery Demo",
* "id": "20:FF:D0:FF:D1:C0",
* "advertising": [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],
* "rssi": -55
* 'name': 'Battery Demo',
* 'id': '20:FF:D0:FF:D1:C0',
* 'advertising': [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],
* 'rssi': -55
* }
* ```
* After connecting, the peripheral object also includes service, characteristic and descriptor information.
*
* ```typescript
* {
* "name": "Battery Demo",
* "id": "20:FF:D0:FF:D1:C0",
* "advertising": [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],
* "rssi": -55,
* "services": [
* "1800",
* "1801",
* "180f"
* 'name': 'Battery Demo',
* 'id': '20:FF:D0:FF:D1:C0',
* 'advertising': [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],
* 'rssi': -55,
* 'services': [
* '1800',
* '1801',
* '180f'
* ],
* "characteristics": [
* 'characteristics': [
* {
* "service": "1800",
* "characteristic": "2a00",
* "properties": [
* "Read"
* 'service': '1800',
* 'characteristic': '2a00',
* 'properties': [
* 'Read'
* ]
* },
* {
* "service": "1800",
* "characteristic": "2a01",
* "properties": [
* "Read"
* 'service': '1800',
* 'characteristic': '2a01',
* 'properties': [
* 'Read'
* ]
* },
* {
* "service": "1801",
* "characteristic": "2a05",
* "properties": [
* "Read"
* 'service': '1801',
* 'characteristic': '2a05',
* 'properties': [
* 'Read'
* ]
* },
* {
* "service": "180f",
* "characteristic": "2a19",
* "properties": [
* "Read"
* 'service': '180f',
* 'characteristic': '2a19',
* 'properties': [
* 'Read'
* ],
* "descriptors": [
* 'descriptors': [
* {
* "uuid": "2901"
* 'uuid': '2901'
* },
* {
* "uuid": "2904"
* 'uuid': '2904'
* }
* ]
* }
@@ -104,10 +104,10 @@ import { Observable } from 'rxjs/Observable';
*
* ```typescript
* {
* "name": "demo",
* "id": "00:1A:7D:DA:71:13",
* "advertising": ArrayBuffer,
* "rssi": -37
* 'name': 'demo',
* 'id': '00:1A:7D:DA:71:13',
* 'advertising': ArrayBuffer,
* 'rssi': -37
* }
* ```
*
@@ -119,24 +119,24 @@ import { Observable } from 'rxjs/Observable';
*
* ```typescript
* {
* "name": "demo",
* "id": "D8479A4F-7517-BCD3-91B5-3302B2F81802",
* "advertising": {
* "kCBAdvDataChannel": 37,
* "kCBAdvDataServiceData": {
* "FED8": {
* "byteLength": 7 // data not shown
* 'name': 'demo',
* 'id': 'D8479A4F-7517-BCD3-91B5-3302B2F81802',
* 'advertising': {
* 'kCBAdvDataChannel': 37,
* 'kCBAdvDataServiceData': {
* 'FED8': {
* 'byteLength': 7 // data not shown
* }
* },
* "kCBAdvDataLocalName": "demo",
* "kCBAdvDataServiceUUIDs": ["FED8"],
* "kCBAdvDataManufacturerData": {
* "byteLength": 7 // data not shown
* 'kCBAdvDataLocalName': 'demo',
* 'kCBAdvDataServiceUUIDs': ['FED8'],
* 'kCBAdvDataManufacturerData': {
* 'byteLength': 7 // data not shown
* },
* "kCBAdvDataTxPowerLevel": 32,
* "kCBAdvDataIsConnectable": true
* 'kCBAdvDataTxPowerLevel': 32,
* 'kCBAdvDataIsConnectable': true
* },
* "rssi": -53
* 'rssi': -53
* }
* ```
*
@@ -176,7 +176,7 @@ import { Observable } from 'rxjs/Observable';
platforms: ['iOS', 'Android']
})
@Injectable()
export class BLE {
export class BLE extends IonicNativePlugin {
/**
* Scan and discover BLE peripherals for the specified amount of time.
@@ -230,7 +230,7 @@ export class BLE {
clearFunction: 'stopScan',
clearWithArgs: false
})
startScanWithOptions(services: string[], options: {reportDuplicates?: boolean} | any): Observable<any> { return; }
startScanWithOptions(services: string[], options: { reportDuplicates?: boolean } | any): Observable<any> { return; }
/**
* Stop a scan started by `startScan`.
@@ -306,14 +306,14 @@ export class BLE {
* // send 1 byte to switch a light on
* var data = new Uint8Array(1);
* data[0] = 1;
* BLE.write(device_id, "FF10", "FF11", data.buffer);
* BLE.write(device_id, 'FF10', 'FF11', data.buffer);
*
* // send a 3 byte value with RGB color
* var data = new Uint8Array(3);
* data[0] = 0xFF; // red
* data[0] = 0x00; // green
* data[0] = 0xFF; // blue
* BLE.write(device_id, "ccc0", "ccc1", data.buffer);
* BLE.write(device_id, 'ccc0', 'ccc1', data.buffer);
*
* // send a 32 bit integer
* var data = new Uint32Array(1);
@@ -357,7 +357,7 @@ export class BLE {
*
* @usage
* ```
* BLE.startNotification(device_id, "FF10", "FF11").subscribe(buffer => {
* BLE.startNotification(device_id, 'FF10', 'FF11').subscribe(buffer => {
* console.log(String.fromCharCode.apply(null, new Uint8Array(buffer));
* });
* ```

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
@@ -13,7 +13,7 @@ import { Observable } from 'rxjs/Observable';
*
*
* // Write a string
* this.bluetoothSerial.write("hello world").then(success, failure);
* this.bluetoothSerial.write('hello world').then(success, failure);
*
* // Array of int or bytes
* this.bluetoothSerial.write([186, 220, 222]).then(success, failure);
@@ -38,7 +38,7 @@ import { Observable } from 'rxjs/Observable';
platforms: ['Android', 'iOS', 'Windows Phone', 'Browser']
})
@Injectable()
export class BluetoothSerial {
export class BluetoothSerial extends IonicNativePlugin {
/**
* Connect to a Bluetooth device

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Brightness
@@ -29,7 +29,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android', 'iOS']
})
@Injectable()
export class Brightness {
export class Brightness extends IonicNativePlugin {
/**
* Sets the brightness of the display.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
@@ -8,7 +8,7 @@ import { Observable } from 'rxjs/Observable';
* This plugin adds exchanging events between native code and your app.
*
* @usage
* ```
* ```typescript
* import { Broadcaster } from '@ionic-native/broadcaster';
*
* constructor(private broadcaster: Broadcaster) { }
@@ -16,7 +16,7 @@ import { Observable } from 'rxjs/Observable';
* ...
*
* // Listen to events from Native
* this.broadcaster.addEventListener('eventName').then((event) => console.log(event));
* this.broadcaster.addEventListener('eventName').subscribe((event) => console.log(event));
*
* // Send event to Native
* this.broadcaster.fireNativeEvent('eventName', {}).then(() => console.log('success'));
@@ -31,7 +31,7 @@ import { Observable } from 'rxjs/Observable';
platforms: ['Android', 'iOS']
})
@Injectable()
export class Broadcaster {
export class Broadcaster extends IonicNativePlugin {
/**
* This function listen to an event sent from the native code

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
/**
@@ -7,7 +7,7 @@ import { Injectable } from '@angular/core';
* This plugin provides an interface to in-app browser tabs that exist on some mobile platforms, specifically [Custom Tabs](http://developer.android.com/tools/support-library/features.html#custom-tabs) on Android (including the [Chrome Custom Tabs](https://developer.chrome.com/multidevice/android/customtabs) implementation), and [SFSafariViewController](https://developer.apple.com/library/ios/documentation/SafariServices/Reference/SFSafariViewController_Ref/) on iOS.
*
* @usage
* ```
* ```typescript
* import { BrowserTab } from '@ionic-native/browser-tab';
*
* constructor(private browserTab: BrowserTab) {
@@ -40,7 +40,7 @@ import { Injectable } from '@angular/core';
platforms: ['Android', 'iOS']
})
@Injectable()
export class BrowserTab {
export class BrowserTab extends IonicNativePlugin {
/**
* Check if BrowserTab option is available

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface CalendarOptions {
@@ -59,8 +59,8 @@ export interface CalendarOptions {
*
*
* @usage
* ```
* import {Calendar} from '@ionic-native/calendar';
* ```typescript
* import { Calendar } from '@ionic-native/calendar';
*
* constructor(private calendar: Calendar) { }
*
@@ -81,7 +81,7 @@ export interface CalendarOptions {
platforms: ['Android', 'iOS']
})
@Injectable()
export class Calendar {
export class Calendar extends IonicNativePlugin {
/**
* This function checks if we have permission to read/write from/to the calendar.

View File

@@ -1,13 +1,13 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Call Number
* @description
* Call a number directly from your Cordova/Ionic application.
*
* @usage
* ```
* import {CallNumber} from '@ionic-native/call-number';
* ```typescript
* import { CallNumber } from '@ionic-native/call-number';
*
* constructor(private callNumber: CallNumber) { }
*
@@ -28,7 +28,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
platforms: ['iOS', 'Android']
})
@Injectable()
export class CallNumber {
export class CallNumber extends IonicNativePlugin {
/**
* Calls a phone number

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface CameraPreviewDimensions {
/** The width of the camera preview, default to window.screen.width */
@@ -39,12 +39,12 @@ export interface CameraPreviewOptions {
}
export interface CameraPreviewPictureOptions {
/** The width in pixels, default 0 */
width?: number;
/** The height in pixels, default 0 */
height?: number;
/** The picture quality, 0 - 100, default 85 */
quality?: number;
/** The width in pixels, default 0 */
width?: number;
/** The height in pixels, default 0 */
height?: number;
/** The picture quality, 0 - 100, default 85 */
quality?: number;
}
/**
@@ -132,9 +132,20 @@ export interface CameraPreviewPictureOptions {
platforms: ['Android', 'iOS']
})
@Injectable()
export class CameraPreview {
export class CameraPreview extends IonicNativePlugin {
EXPOSURE_MODES = {
FOCUS_MODE = {
FIXED: 'fixed',
AUTO: 'auto',
CONTINUOUS: 'continuous', // IOS Only
CONTINUOUS_PICTURE: 'continuous-picture', // Android Only
CONTINUOUS_VIDEO: 'continuous-video', // Android Only
EDOF: 'edof', // Android Only
INFINITY: 'infinity', // Android Only
MACRO: 'macro' // Android Only
};
EXPOSURE_MODE = {
LOCK: 'lock', // IOS Only
AUTO: 'auto', // IOS Only
CONTINUOUS: 'continuous',
@@ -240,10 +251,10 @@ export class CameraPreview {
})
setZoom(zoom?: number): Promise<any> { return; }
/**
* Get the maximum zoom (Android)
* @return {Promise<any>}
*/
/**
* Get the maximum zoom (Android)
* @return {Promise<any>}
*/
@Cordova()
getMaxZoom(): Promise<any> { return; }
@@ -265,6 +276,38 @@ export class CameraPreview {
})
setPreviewSize(dimensions?: CameraPreviewDimensions): Promise<any> { return; }
/**
* Get focus mode
* @return {Promise<any>}
*/
@Cordova()
getFocusMode(): Promise<any> { return; }
/**
* Set the focus mode
* @param [focusMode] {string} 'fixed', 'auto', 'continuous-picture', 'continuous-video' (iOS & Android), 'edof', 'infinity', 'macro' (Android Only)
* @return {Promise<any>}
*/
@Cordova({
successIndex: 1,
errorIndex: 2
})
setFocusMode(focusMode?: string): Promise<any> { return; }
/**
* Get supported focus modes
* @return {Promise<any>}
*/
@Cordova()
getSupportedFocusModes(): Promise<any> { return; }
/**
* Get the current flash mode
* @return {Promise<any>}
*/
@Cordova()
getFlashMode(): Promise<any> { return; }
/**
* Set the flashmode
* @param [flashMode] {string} 'off' (iOS & Android), 'on' (iOS & Android), 'auto' (iOS & Android), 'torch' (Android)
@@ -276,13 +319,6 @@ export class CameraPreview {
})
setFlashMode(flashMode?: string): Promise<any> { return; }
/**
* Get supported picture sizes
* @return {Promise<any>}
*/
@Cordova()
getSupportedPictureSizes(): Promise<any> { return; }
/**
* Get supported flash modes
* @return {Promise<any>}
@@ -290,6 +326,13 @@ export class CameraPreview {
@Cordova()
getSupportedFlashModes(): Promise<any> { return; }
/**
* Get supported picture sizes
* @return {Promise<any>}
*/
@Cordova()
getSupportedPictureSizes(): Promise<any> { return; }
/**
* Get exposure mode
* @return {Promise<any>}
@@ -340,4 +383,13 @@ export class CameraPreview {
@Cordova()
getExposureCompensationRange(): Promise<any> { return; }
/**
* Set specific focus point. Note, this assumes the camera is full-screen.
* @param xPoint {number}
* @param yPoint {number}
* @return {Promise<any>}
*/
@Cordova()
tapToFocus(xPoint: number, yPoint: number): Promise<any> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface CameraOptions {
/** Picture quality in range 0-100. Default is 50 */
@@ -128,7 +128,7 @@ export interface CameraPopoverOptions {
platforms: ['Android', 'BlackBerry', 'Browser', 'Firefox', 'FireOS', 'iOS', 'Windows', 'Windows Phone 8', 'Ubuntu']
})
@Injectable()
export class Camera {
export class Camera extends IonicNativePlugin {
/**
* Constant for possible destination types

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface CardIOOptions {
@@ -133,7 +133,7 @@ export interface CardIOResponse {
* @name Card IO
* @description
* @usage
* ```
* ```typescript
* import { CardIO } from '@ionic-native/card-io';
*
* constructor(private cardIO: CardIO) { }
@@ -167,7 +167,7 @@ export interface CardIOResponse {
platforms: ['iOS', 'Android']
})
@Injectable()
export class CardIO {
export class CardIO extends IonicNativePlugin {
/**
* Check whether card scanning is currently available. (May vary by

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Clipboard
* @description
@@ -37,7 +37,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Amazon Fire OS', 'iOS', 'Android', 'BlackBerry 10', 'Windows Phone 7', 'Windows Phone 8', 'Windows', 'Firefox OS', 'Browser']
})
@Injectable()
export class Clipboard {
export class Clipboard extends IonicNativePlugin {
/**
* Copies the given text

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
namespace Http {
export const enum Verb {
@@ -427,7 +427,7 @@ export interface DownloadProgress {
platforms: ['Android', 'iOS']
})
@Injectable()
export class CodePush {
export class CodePush extends IonicNativePlugin {
/**
* Get the current package information.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { CordovaInstance, InstanceProperty, Plugin, getPromise, InstanceCheck, checkAvailability, CordovaCheck } from '@ionic-native/core';
import { CordovaInstance, InstanceProperty, Plugin, getPromise, InstanceCheck, checkAvailability, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
declare var window: any,
navigator: any;
@@ -79,7 +79,7 @@ export class Contact implements IContactProperties {
@InstanceCheck()
clone(): Contact {
let newContact = new Contact();
let newContact: any = new Contact();
for (let prop in this) {
if (prop === 'id') return;
newContact[prop] = this[prop];
@@ -145,16 +145,16 @@ export interface IContactName {
*/
export class ContactName implements IContactName {
constructor(public formatted?: string,
public familyName?: string,
public givenName?: string,
public middleName?: string,
public honorificPrefix?: string,
public honorificSuffix?: string) {}
public familyName?: string,
public givenName?: string,
public middleName?: string,
public honorificPrefix?: string,
public honorificSuffix?: string) { }
}
export interface IContactField {
/** A string that indicates what type of field this is, home for example. */
type?: string;
type?: string;
/** The value of the field, such as a phone number or email address. */
value?: string;
/** Set to true if this ContactField contains the user's preferred value. */
@@ -166,15 +166,15 @@ export interface IContactField {
*/
export class ContactField implements IContactField {
constructor(public type?: string,
public value?: string,
public pref?: boolean) {}
public value?: string,
public pref?: boolean) { }
}
export interface IContactAddress {
/** Set to true if this ContactAddress contains the user's preferred value. */
pref?: boolean;
/** A string indicating what type of field this is, home for example. */
type?: string;
type?: string;
/** The full address formatted for display. */
formatted?: string;
/** The full street address. */
@@ -194,20 +194,20 @@ export interface IContactAddress {
*/
export class ContactAddress implements IContactAddress {
constructor(public pref?: boolean,
public type?: string,
public formatted?: string,
public streetAddress?: string,
public locality?: string,
public region?: string,
public postalCode?: string,
public country?: string) {}
public type?: string,
public formatted?: string,
public streetAddress?: string,
public locality?: string,
public region?: string,
public postalCode?: string,
public country?: string) { }
}
export interface IContactOrganization {
/** Set to true if this ContactOrganization contains the user's preferred value. */
pref?: boolean;
/** A string that indicates what type of field this is, home for example. */
type?: string;
type?: string;
/** The name of the organization. */
name?: string;
/** The department the contract works for. */
@@ -226,7 +226,7 @@ export class ContactOrganization implements IContactOrganization {
public department?: string,
public title?: string,
public pref?: boolean
) {}
) { }
}
/** Search options to filter navigator.contacts. */
@@ -248,9 +248,9 @@ export interface IContactFindOptions {
*/
export class ContactFindOptions implements IContactFindOptions {
constructor(public filter?: string,
public multiple?: boolean,
public desiredFields?: string[],
public hasPhoneNumber?: boolean) {}
public multiple?: boolean,
public desiredFields?: string[],
public hasPhoneNumber?: boolean) { }
}
/**
@@ -294,7 +294,7 @@ export class ContactFindOptions implements IContactFindOptions {
platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Ubuntu', 'Windows', 'Windows 8', 'Windows Phone']
})
@Injectable()
export class Contacts {
export class Contacts extends IonicNativePlugin {
/**
* Create a single contact.

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
* Plugin to install Couchbase Lite in your PhoneGap app on iOS or Android
*
* @usage
* ```
* ```typescript
* import { CouchbaseLite } from '@ionic-native/couchbase-lite';
*
* constructor(private couchbase: CouchbaseLite) {
@@ -29,7 +29,7 @@ import { Injectable } from '@angular/core';
platforms: ['Android', 'iOS']
})
@Injectable()
export class CouchbaseLite {
export class CouchbaseLite extends IonicNativePlugin {
/**
* Get the database url
@@ -38,6 +38,6 @@ export class CouchbaseLite {
@Cordova({
callbackStyle: 'node'
})
getURL(): Promise<any> { return; }
getURL(): Promise<any> { return; }
}

View File

@@ -1,12 +1,12 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Crop
* @description Crops images
* @usage
* ```
* import {Crop} from '@ionic-native/crop';
* ```typescript
* import { Crop } from '@ionic-native/crop';
*
* constructor(private crop: Crop) { }
*
@@ -14,8 +14,8 @@ import { Cordova, Plugin } from '@ionic-native/core';
*
* this.crop.crop('path/to/image.jpg', {quality: 75})
* .then(
* newImage => console.log("new image path is: " + newImage),
* error => console.error("Error cropping image", error)
* newImage => console.log('new image path is: ' + newImage),
* error => console.error('Error cropping image', error)
* );
* ```
*/
@@ -27,7 +27,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android', 'iOS']
})
@Injectable()
export class Crop {
export class Crop extends IonicNativePlugin {
/**
* Crops an image
@@ -38,6 +38,6 @@ export class Crop {
@Cordova({
callbackOrder: 'reverse'
})
crop(pathToImage: string, options?: {quality: number}): Promise<string> { return; }
crop(pathToImage: string, options?: { quality: number }): Promise<string> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import {Cordova, Plugin} from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface DatePickerOptions {
/**
@@ -154,7 +154,7 @@ export interface DatePickerOptions {
platforms: ['Android', 'iOS', 'Windows']
})
@Injectable()
export class DatePicker {
export class DatePicker extends IonicNativePlugin {
/**
* @hidden

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
@@ -42,7 +42,7 @@ import { Observable } from 'rxjs/Observable';
platforms: ['iOS', 'Android']
})
@Injectable()
export class DBMeter {
export class DBMeter extends IonicNativePlugin {
/**
* Starts listening

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface DeeplinkMatch {
@@ -83,7 +83,7 @@ export interface DeeplinkMatch {
installVariables: ['URL_SCHEME', 'DEEPLINK_SCHEME', 'DEEPLINK_HOST', 'ANDROID_PATH_PREFIX']
})
@Injectable()
export class Deeplinks {
export class Deeplinks extends IonicNativePlugin {
/**
* Define a set of paths to match against incoming deeplinks.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Device Accounts
@@ -28,7 +28,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android']
})
@Injectable()
export class DeviceAccounts {
export class DeviceAccounts extends IonicNativePlugin {
/**
* Gets all accounts registered on the Android Device

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Device Feedback
* @description
@@ -7,7 +7,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
* Plugin that lets you provide haptic or acoustic feedback on Android devices.
*
* @usage
* ```
* ```typescript
* import { DeviceFeedback } from '@ionic-native/device-feedback';
*
* constructor(private deviceFeedback: DeviceFeedback) { }
@@ -38,7 +38,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
platforms: ['Android']
})
@Injectable()
export class DeviceFeedback {
export class DeviceFeedback extends IonicNativePlugin {
/**
* Provide sound feedback to user, nevertheless respect user's settings and current active device profile as native feedback do.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface DeviceMotionAccelerationData {
@@ -75,7 +75,7 @@ export interface DeviceMotionAccelerometerOptions {
platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone']
})
@Injectable()
export class DeviceMotion {
export class DeviceMotion extends IonicNativePlugin {
/**
* Get the current acceleration along the x, y, and z axes.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface DeviceOrientationCompassHeading {
@@ -80,7 +80,7 @@ export interface DeviceOrientationCompassOptions {
platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone']
})
@Injectable()
export class DeviceOrientation {
export class DeviceOrientation extends IonicNativePlugin {
/**
* Get the current compass heading.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { CordovaProperty, Plugin } from '@ionic-native/core';
import { CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-native/core';
declare var window: any;
@@ -27,7 +27,7 @@ declare var window: any;
platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'OS X', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone']
})
@Injectable()
export class Device {
export class Device extends IonicNativePlugin {
/** Get the version of Cordova running on the device. */
@CordovaProperty

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import {Cordova, Plugin, CordovaProperty} from '@ionic-native/core';
import { Cordova, Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Diagnostic
@@ -42,7 +42,7 @@ import {Cordova, Plugin, CordovaProperty} from '@ionic-native/core';
platforms: ['Android', 'iOS', 'Windows']
})
@Injectable()
export class Diagnostic {
export class Diagnostic extends IonicNativePlugin {
permission = {
READ_CALENDAR: 'READ_CALENDAR',
@@ -144,10 +144,12 @@ export class Diagnostic {
/**
* Checks if the device has a camera. On Android this returns true if the device has a camera. On iOS this returns true if both the device has a camera AND the application is authorized to use it. On Windows 10 Mobile this returns true if both the device has a rear-facing camera AND the
* application is authorized to use it.
* @param {boolean} [externalStorage] Android only: If true, checks permission for READ_EXTERNAL_STORAGE in addition to CAMERA run-time permission.
* cordova-plugin-camera@2.2+ requires both of these permissions. Defaults to true.
* @returns {Promise<any>}
*/
@Cordova()
isCameraAvailable(): Promise<any> { return; }
@Cordova({ successIndex: 1, errorIndex: 2 })
isCameraAvailable( externalStorage?: boolean ): Promise<any> { return; }
/**
* Checks if the device has Bluetooth capabilities and if so that Bluetooth is switched on (same on Android, iOS and Windows 10 Mobile)
@@ -251,24 +253,30 @@ export class Diagnostic {
/**
* Checks if the application is authorized to use the camera.
* Note for Android: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return TRUE as permissions are already granted at installation time.
* @param {boolean} [externalStorage] Android only: If true, checks permission for READ_EXTERNAL_STORAGE in addition to CAMERA run-time permission.
* cordova-plugin-camera@2.2+ requires both of these permissions. Defaults to true.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
isCameraAuthorized(): Promise<any> { return; }
@Cordova({ platforms: ['Android', 'iOS'], successIndex: 1, errorIndex: 2 })
isCameraAuthorized( externalStorage?: boolean ): Promise<any> { return; }
/**
* Returns the camera authorization status for the application.
* @param {boolean} [externalStorage] Android only: If true, checks permission for READ_EXTERNAL_STORAGE in addition to CAMERA run-time permission.
* cordova-plugin-camera@2.2+ requires both of these permissions. Defaults to true.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
getCameraAuthorizationStatus(): Promise<any> { return; }
@Cordova({ platforms: ['Android', 'iOS'], successIndex: 1, errorIndex: 2 })
getCameraAuthorizationStatus( externalStorage?: boolean ): Promise<any> { return; }
/**
* Requests camera authorization for the application.
* @param {boolean} [externalStorage] Android only: If true, requests permission for READ_EXTERNAL_STORAGE in addition to CAMERA run-time permission.
* cordova-plugin-camera@2.2+ requires both of these permissions. Defaults to true.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
requestCameraAuthorization(): Promise<any> { return; }
@Cordova({ platforms: ['Android', 'iOS'], successIndex: 1, errorIndex: 2 })
requestCameraAuthorization( externalStorage?: boolean ): Promise<any> { return; }
/**
* Checks if the application is authorized to use the microphone.
@@ -614,10 +622,10 @@ export class Diagnostic {
/**
* Returns the authorization status for the application to use the Camera Roll in Photos app.
* @returns {Promise<boolean>}
* @returns {Promise<string>}
*/
@Cordova({ platforms: ['iOS'] })
getCameraRollAuthorizationStatus(): Promise<boolean> { return; }
getCameraRollAuthorizationStatus(): Promise<string> { return; }
/**
* Requests camera roll authorization for the application.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface DialogsPromptCallback {
@@ -49,7 +49,7 @@ export interface DialogsPromptCallback {
platforms: ['Android', 'BlackBerry 10', 'Firefox OS', 'iOS', 'Ubuntu', 'Windows', 'Windows Phone']
})
@Injectable()
export class Dialogs {
export class Dialogs extends IonicNativePlugin {
/**
* Shows a custom alert or dialog box.

View File

@@ -0,0 +1,101 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
export interface DocumentViewerOptions {
title: string;
documentView: {
closeLabel: string;
};
navigationView: {
closeLabel: string;
};
email: {
enabled: boolean;
};
print: {
enabled: boolean;
};
openWith: {
enabled: boolean;
};
bookmarks: {
enabled: boolean;
};
search: {
enabled: boolean;
};
autoClose: {
onPause: boolean;
};
}
/**
* @name Document Viewer
* @description
* This plugin offers a slim API to view PDF files which are either stored in the apps assets folder (/www/*) or in any other file system directory available via the cordova file plugin.
*
* @usage
* ```typescript
* import { DocumentViewer } from '@ionic-native/document-viewer';
*
*
* constructor(private document: DocumentViewer) { }
*
* ...
* const options = {
* title: 'My PDF'
* }
* this.document.view('assets/myFile.pdf', 'application/pdf', options)
*
* ```
*
* @interfaces
* DocumentViewerOptions
*/
@Plugin({
pluginName: 'Document Viewer',
plugin: 'cordova-plugin-document-viewer',
pluginRef: 'SitewaertsDocumentViewer',
repo: 'https://github.com/sitewaerts/cordova-plugin-document-viewer',
platforms: ['Android', 'iOS', 'Windows']
})
@Injectable()
export class DocumentViewer extends IonicNativePlugin {
/**
* Displays the email composer pre-filled with data.
*
* @returns {Promise<any>} Resolves promise when the EmailComposer has been opened
*/
@Cordova()
getSupportInfo(): Promise<any> { return; }
/**
* Check if the document can be shown
*
* @param url {string} Url to the file
* @param contentType {string} Content type of the file
* @param options {Array<DocumentViewerOptions>} options
* @param [onPossible] {Function}
* @param [onMissingApp] {Function}
* @param [onImpossible] {Function}
* @param [onError] {Function}
*/
@Cordova({ sync: true })
canViewDocument(url: string, contentType: string, options: Array<DocumentViewerOptions>, onPossible?: Function, onMissingApp?: Function, onImpossible?: Function, onError?: Function): void { }
/**
* Opens the file
*
* @param url {string} Url to the file
* @param contentType {string} Content type of the file
* @param options {Array<DocumentViewerOptions>} options
* @param [onShow] {Function}
* @param [onClose] {Function}
* @param [onMissingApp] {Function}
* @param [onError] {Function}
*/
@Cordova({ sync: true })
viewDocument(url: string, contentType: string, options: Array<DocumentViewerOptions>, onShow?: Function, onClose?: Function, onMissingApp?: Function, onError?: Function): void { }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, CordovaCheck } from '@ionic-native/core';
import { Cordova, Plugin, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
declare var cordova: any;
@@ -25,14 +25,11 @@ export interface EmailComposerOptions {
/**
* @beta
* @name Email Composer
* @description
*
* Requires Cordova plugin: cordova-plugin-email-composer. For more info, please see the [Email Composer plugin docs](https://github.com/hypery2k/cordova-email-plugin).
*
* DISCLAIMER: This plugin is experiencing issues with the latest versions of Cordova. Use at your own risk. Functionality is not guaranteed. Please stay tuned for a more stable version.
* A good alternative to this plugin is the social sharing plugin.
*
* @usage
* ```typescript
@@ -79,7 +76,7 @@ export interface EmailComposerOptions {
platforms: ['Android', 'iOS']
})
@Injectable()
export class EmailComposer {
export class EmailComposer extends IonicNativePlugin {
/**
* Verifies if sending emails is supported on the device.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface EstimoteBeaconRegion {
@@ -47,7 +47,7 @@ export interface EstimoteBeaconRegion {
platforms: ['iOS', 'Android']
})
@Injectable()
export class EstimoteBeacons {
export class EstimoteBeacons extends IonicNativePlugin {
/** Proximity value */
ProximityUnknown = 0;

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface FacebookLoginResponse {
@@ -104,6 +104,8 @@ export interface FacebookLoginResponse {
* .catch(e => console.log('Error logging into Facebook', e));
*
*
* this.fb.logEvent(this.fb.EVENTS.EVENT_NAME_ADDED_TO_CART);
*
* ```
*
*/
@@ -117,7 +119,42 @@ export interface FacebookLoginResponse {
platforms: ['Android', 'iOS']
})
@Injectable()
export class Facebook {
export class Facebook extends IonicNativePlugin {
EVENTS: {
EVENT_NAME_ACTIVATED_APP: 'fb_mobile_activate_app',
EVENT_NAME_DEACTIVATED_APP: 'fb_mobile_deactivate_app',
EVENT_NAME_SESSION_INTERRUPTIONS: 'fb_mobile_app_interruptions',
EVENT_NAME_TIME_BETWEEN_SESSIONS: 'fb_mobile_time_between_sessions',
EVENT_NAME_COMPLETED_REGISTRATION: 'fb_mobile_complete_registration',
EVENT_NAME_VIEWED_CONTENT: 'fb_mobile_content_view',
EVENT_NAME_SEARCHED: 'fb_mobile_search',
EVENT_NAME_RATED: 'fb_mobile_rate',
EVENT_NAME_COMPLETED_TUTORIAL: 'fb_mobile_tutorial_completion',
EVENT_NAME_PUSH_TOKEN_OBTAINED: 'fb_mobile_obtain_push_token',
EVENT_NAME_ADDED_TO_CART: 'fb_mobile_add_to_cart',
EVENT_NAME_ADDED_TO_WISHLIST: 'fb_mobile_add_to_wishlist',
EVENT_NAME_INITIATED_CHECKOUT: 'fb_mobile_initiated_checkout',
EVENT_NAME_ADDED_PAYMENT_INFO: 'fb_mobile_add_payment_info',
EVENT_NAME_PURCHASED: 'fb_mobile_purchase',
EVENT_NAME_ACHIEVED_LEVEL: 'fb_mobile_level_achieved',
EVENT_NAME_UNLOCKED_ACHIEVEMENT: 'fb_mobile_achievement_unlocked',
EVENT_NAME_SPENT_CREDITS: 'fb_mobile_spent_credits',
EVENT_PARAM_CURRENCY: 'fb_currency',
EVENT_PARAM_REGISTRATION_METHOD: 'fb_registration_method',
EVENT_PARAM_CONTENT_TYPE: 'fb_content_type',
EVENT_PARAM_CONTENT_ID: 'fb_content_id',
EVENT_PARAM_SEARCH_STRING: 'fb_search_string',
EVENT_PARAM_SUCCESS: 'fb_success',
EVENT_PARAM_MAX_RATING_VALUE: 'fb_max_rating_value',
EVENT_PARAM_PAYMENT_INFO_AVAILABLE: 'fb_payment_info_available',
EVENT_PARAM_NUM_ITEMS: 'fb_num_items',
EVENT_PARAM_LEVEL: 'fb_level',
EVENT_PARAM_DESCRIPTION: 'fb_description',
EVENT_PARAM_SOURCE_APPLICATION: 'fb_mobile_launch_source',
EVENT_PARAM_VALUE_YES: '1',
EVENT_PARAM_VALUE_NO: '0'
};
/**
* Browser wrapper
@@ -135,16 +172,17 @@ export class Facebook {
*
* ```typescript
* {
* status: "connected",
* status: 'connected',
* authResponse: {
* session_key: true,
* accessToken: "kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn",
* accessToken: 'kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn',
* expiresIn: 5183979,
* sig: "...",
* secret: "...",
* userID: "634565435"
* sig: '...',
* secret: '...',
* userID: '634565435'
* }
* }
*
* ```
*
* @param {string[]} permissions List of [permissions](https://developers.facebook.com/docs/facebook-login/permissions) this app has upon logging in.
@@ -174,13 +212,13 @@ export class Facebook {
* ```
* {
* authResponse: {
* userID: "12345678912345",
* accessToken: "kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn",
* userID: '12345678912345',
* accessToken: 'kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn',
* session_Key: true,
* expiresIn: "5183738",
* sig: "..."
* expiresIn: '5183738',
* sig: '...'
* },
* status: "connected"
* status: 'connected'
* }
* ```
*
@@ -204,10 +242,10 @@ export class Facebook {
*
* ```
* {
* method: "share",
* href: "http://example.com",
* caption: "Such caption, very feed.",
* description: "Much description",
* method: 'share',
* href: 'http://example.com',
* caption: 'Such caption, very feed.',
* description: 'Much description',
* picture: 'http://example.com/image.png'
* }
* ```

View File

@@ -0,0 +1,118 @@
import { Plugin, IonicNativePlugin, Cordova } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
export interface NotificationData {
/**
* Determines whether the notification was pressed or not
*/
wasTapped: boolean;
/**
* Notification data hash item
*/
[name: string]: any;
}
/**
* @name FCM
* @description
* Provides basic functionality for Firebase Cloud Messaging
*
* @usage
* ```typescript
* import { FCM } from 'ionic-native';
*
* constructor(private fcm: FCM) {}
*
* ...
*
* fcm.subscribeToTopic('marketing');
*
* fcm.getToken().then(token=>{
* backend.registerToken(token);
* })
*
* fcm.onNotification().subscribe(data=>{
* if(data.wasPressed){
* console.log("Received in background");
* } else {
* console.log("Received in foreground");
* };
* })
*
* fcm.onTokenRefresh().subscribe(token=>{
* backend.registerToken(token);
* })
*
* fcm.unsubscribeToTopic('marketing');
*
* ```
* @interfaces
* NotificationData
*/
@Plugin({
pluginName: 'FCM',
plugin: 'cordova-plugin-fcm',
pluginRef: 'FCMPlugin',
repo: 'https://github.com/fechanique/cordova-plugin-fcm',
platforms: ['iOS', 'Android']
})
@Injectable()
export class FCM extends IonicNativePlugin {
/**
* Get's device's current registration id
*
* @returns {Promise<string>} Returns a Promise that resolves with the registration id token
*/
@Cordova()
getToken(): Promise<string> { return; }
/**
* Event firing on the token refresh
*
* @returns {Observable<string>} Returns an Observable that notifies with the change of device's registration id
*/
@Cordova({
observable: true
})
onTokenRefresh(): Observable<string> { return; }
/**
* Subscribes you to a [topic](https://firebase.google.com/docs/notifications/android/console-topics)
*
* @param {string} topic Topic to be subscribed to
*
* @returns {Promise<any>} Returns a promise resolving in result of subscribing to a topic
*/
@Cordova()
subscribeToTopic(topic: string): Promise<any> { return; }
/**
* Unubscribes you from a [topic](https://firebase.google.com/docs/notifications/android/console-topics)
*
* @param {string} topic Topic to be unsubscribed from
*
* @returns {Promise<any>} Returns a promise resolving in result of unsubscribing from a topic
*/
@Cordova()
unsubscribeToTopic(topic: string): Promise<any> { return; }
/**
* Watch for incoming notifications
*
* @returns {Observable<any>} returns an object with data from the notification
*/
@Cordova({
observable: true,
successIndex: 0,
errorIndex: 2
})
onNotification(): Observable<NotificationData> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
* @name File Chooser
@@ -8,7 +8,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
* Opens the file picker on Android for the user to select a file, returns a file URI.
*
* @usage
* ```
* ```typescript
* import { FileChooser } from '@ionic-native/file-chooser';
*
* constructor(private fileChooser: FileChooser) { }
@@ -29,7 +29,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
platforms: ['Android']
})
@Injectable()
export class FileChooser {
export class FileChooser extends IonicNativePlugin {
/**
* Open a file

View File

@@ -0,0 +1,52 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
/**
* @name File Encryption
* @description
* Simple file encryption for Cordova.
*
* @usage
* ```typescript
* import { FileEncryption } from '@ionic-native/file-encryption';
*
*
* constructor(private fileEncryption: FileEncryption) { }
*
* ...
*
* this.fileEncryption.decrypt('assets/json/topSecret.json', 'secretKey');
*
* this.fileEncryption.encrypt('assets/json/topSecret.json', 'secretKey');
*
* ```
*/
@Plugin({
pluginName: 'FileEncryption',
plugin: 'cordova-safe',
pluginRef: 'cordova.plugins.disusered',
repo: 'https://github.com/disusered/cordova-safe',
platforms: ['Android', 'iOS']
})
@Injectable()
export class FileEncryption extends IonicNativePlugin {
/**
* Enrcypt a file
* @param file {string} A string representing a local URI
* @param key {string} A key for the crypto operations
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova()
encrypt(file: string, key: string): Promise<any> { return; }
/**
* Decrypt a file
* @param file {string} A string representing a local URI
* @param key {string} A key for the crypto operations
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova()
decrypt(file: string, key: string): Promise<any> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
* @name File Opener
@@ -7,7 +7,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
* This plugin will open a file on your device file system with its default application.
*
* @usage
* ```
* ```typescript
* import { FileOpener } from '@ionic-native/file-opener';
*
* constructor(private fileOpener: FileOpener) { }
@@ -28,7 +28,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
platforms: ['Android', 'iOS', 'Windows', 'Windows Phone 8']
})
@Injectable()
export class FileOpener {
export class FileOpener extends IonicNativePlugin {
/**
* Open an file
@@ -41,7 +41,7 @@ export class FileOpener {
successName: 'success',
errorName: 'error'
})
open(filePath: string, fileMIMEType: string): Promise<any> {return; }
open(filePath: string, fileMIMEType: string): Promise<any> { return; }
/**
* Uninstalls a package
@@ -53,7 +53,7 @@ export class FileOpener {
successName: 'success',
errorName: 'error'
})
uninstall(packageId: string): Promise<any> {return; }
uninstall(packageId: string): Promise<any> { return; }
/**
* Check if an app is already installed
@@ -65,6 +65,6 @@ export class FileOpener {
successName: 'success',
errorName: 'error'
})
appIsInstalled(packageId: string): Promise<any> {return; }
appIsInstalled(packageId: string): Promise<any> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
declare var window: any;
@@ -10,7 +10,7 @@ declare var window: any;
* This plugin allows you to resolve the native filesystem path for Android content URIs and is based on code in the aFileChooser library.
*
* @usage
* ```
* ```typescript
* import { FilePath } from '@ionic-native/file-path';
*
* constructor(private filePath: FilePath) { }
@@ -31,7 +31,7 @@ declare var window: any;
platforms: ['Android']
})
@Injectable()
export class FilePath {
export class FilePath extends IonicNativePlugin {
/**
* Resolve native path for given content URL/path.
@@ -39,6 +39,6 @@ export class FilePath {
* @returns {Promise<string>}
*/
@Cordova()
resolveNativePath(path: string): Promise<string> {return; }
resolveNativePath(path: string): Promise<string> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { CordovaProperty, Plugin, CordovaCheck } from '@ionic-native/core';
import { CordovaProperty, Plugin, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
declare var window: any;
declare var cordova: any;
@@ -34,7 +34,7 @@ export interface Entry {
* @param errorCallback A callback that is called when errors happen.
*/
getMetadata(successCallback: (metadata: Metadata) => void,
errorCallback?: (error: FileError) => void): void;
errorCallback?: (error: FileError) => void): void;
/**
* Move an entry to a different location on the file system. It is an error to try to:
* move a directory inside itself or to any child at any depth;move an entry into its parent if a name different from its current one isn't provided;
@@ -49,9 +49,9 @@ export interface Entry {
* @param errorCallback A callback that is called when errors happen.
*/
moveTo(parent: DirectoryEntry,
newName?: string,
successCallback?: (entry: Entry) => void,
errorCallback?: (error: FileError) => void): void;
newName?: string,
successCallback?: (entry: Entry) => void,
errorCallback?: (error: FileError) => void): void;
/**
* Copy an entry to a different location on the file system. It is an error to try to:
* copy a directory inside itself or to any child at any depth;
@@ -68,9 +68,9 @@ export interface Entry {
* @param errorCallback A callback that is called when errors happen.
*/
copyTo(parent: DirectoryEntry,
newName?: string,
successCallback?: (entry: Entry) => void,
errorCallback?: (error: FileError) => void): void;
newName?: string,
successCallback?: (entry: Entry) => void,
errorCallback?: (error: FileError) => void): void;
/**
* Returns a URL that can be used as the src attribute of a <video> or <audio> tag.
* If that is not possible, construct a cdvfile:// URL.
@@ -88,14 +88,14 @@ export interface Entry {
* @param errorCallback A callback that is called when errors happen.
*/
remove(successCallback: () => void,
errorCallback?: (error: FileError) => void): void;
errorCallback?: (error: FileError) => void): void;
/**
* Look up the parent DirectoryEntry containing this Entry. If this Entry is the root of its filesystem, its parent is itself.
* @param successCallback A callback that is called with the time of the last modification.
* @param errorCallback A callback that is called when errors happen.
*/
getParent(successCallback: (entry: Entry) => void,
errorCallback?: (error: FileError) => void): void;
errorCallback?: (error: FileError) => void): void;
}
/** This interface supplies information about the state of a file or directory. */
@@ -126,8 +126,8 @@ export interface DirectoryEntry extends Entry {
* @param errorCallback A callback that is called when errors happen.
*/
getFile(path: string, options?: Flags,
successCallback?: (entry: FileEntry) => void,
errorCallback?: (error: FileError) => void): void;
successCallback?: (entry: FileEntry) => void,
errorCallback?: (error: FileError) => void): void;
/**
* Creates or looks up a directory.
* @param path Either an absolute path or a relative path from this DirectoryEntry
@@ -142,8 +142,8 @@ export interface DirectoryEntry extends Entry {
* @param errorCallback A callback that is called when errors happen.
*/
getDirectory(path: string, options?: Flags,
successCallback?: (entry: DirectoryEntry) => void,
errorCallback?: (error: FileError) => void): void;
successCallback?: (entry: DirectoryEntry) => void,
errorCallback?: (error: FileError) => void): void;
/**
* Deletes a directory and all of its contents, if any. In the event of an error (e.g. trying
* to delete a directory that contains a file that cannot be removed), some of the contents
@@ -152,7 +152,7 @@ export interface DirectoryEntry extends Entry {
* @param errorCallback A callback that is called when errors happen.
*/
removeRecursively(successCallback: () => void,
errorCallback?: (error: FileError) => void): void;
errorCallback?: (error: FileError) => void): void;
}
export interface RemoveResult {
@@ -196,7 +196,7 @@ export interface DirectoryReader {
* @param errorCallback A callback indicating that there was an error reading from the Directory.
*/
readEntries(successCallback: (entries: Entry[]) => void,
errorCallback?: (error: FileError) => void): void;
errorCallback?: (error: FileError) => void): void;
}
/** This interface represents a file on a file system. */
@@ -207,14 +207,14 @@ export interface FileEntry extends Entry {
* @param errorCallback A callback that is called when errors happen.
*/
createWriter(successCallback: (writer: FileWriter) => void,
errorCallback?: (error: FileError) => void): void;
errorCallback?: (error: FileError) => void): void;
/**
* Returns a File that represents the current state of the file that this FileEntry represents.
* @param successCallback A callback that is called with the File.
* @param errorCallback A callback that is called when errors happen.
*/
file(successCallback: (file: File) => void,
errorCallback?: (error: FileError) => void): void;
errorCallback?: (error: FileError) => void): void;
}
/**
@@ -313,7 +313,7 @@ export declare var FileReader: {
LOADING: number;
DONE: number;
new(): FileReader;
new (): FileReader;
};
export interface FileError {
@@ -371,7 +371,7 @@ export declare var FileError: {
platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'OS X', 'Ubuntu', 'Windows', 'Windows Phone']
})
@Injectable()
export class File {
export class File extends IonicNativePlugin {
/**
* Read-only directory where the application is installed.
@@ -545,7 +545,7 @@ export class File {
return this.resolveDirectoryUrl(path)
.then((fse) => {
return this.getDirectory(fse, dirName, {create: false});
return this.getDirectory(fse, dirName, { create: false });
})
.then((de) => {
return this.remove(de);
@@ -562,7 +562,7 @@ export class File {
* @returns {Promise<DirectoryEntry|Entry>} Returns a Promise that resolves to the new DirectoryEntry object or rejects with an error.
*/
@CordovaCheck()
moveDir(path: string, dirName: string, newPath: string, newDirName: string): Promise<DirectoryEntry|Entry> {
moveDir(path: string, dirName: string, newPath: string, newDirName: string): Promise<DirectoryEntry | Entry> {
newDirName = newDirName || dirName;
if ((/^\//.test(newDirName))) {
@@ -573,7 +573,7 @@ export class File {
return this.resolveDirectoryUrl(path)
.then((fse) => {
return this.getDirectory(fse, dirName, {create: false});
return this.getDirectory(fse, dirName, { create: false });
})
.then((srcde) => {
return this.resolveDirectoryUrl(newPath)
@@ -602,7 +602,7 @@ export class File {
return this.resolveDirectoryUrl(path)
.then((fse) => {
return this.getDirectory(fse, dirName, {create: false});
return this.getDirectory(fse, dirName, { create: false });
})
.then((srcde) => {
return this.resolveDirectoryUrl(newPath)
@@ -629,7 +629,7 @@ export class File {
return this.resolveDirectoryUrl(path)
.then((fse) => {
return this.getDirectory(fse, dirName, {create: false, exclusive: false});
return this.getDirectory(fse, dirName, { create: false, exclusive: false });
})
.then((de) => {
let reader = de.createReader();
@@ -654,7 +654,7 @@ export class File {
return this.resolveDirectoryUrl(path)
.then((fse) => {
return this.getDirectory(fse, dirName, {create: false});
return this.getDirectory(fse, dirName, { create: false });
})
.then((de) => {
return this.rimraf(de);
@@ -737,7 +737,7 @@ export class File {
return this.resolveDirectoryUrl(path)
.then((fse) => {
return this.getFile(fse, fileName, {create: false});
return this.getFile(fse, fileName, { create: false });
})
.then((fe) => {
return this.remove(fe);
@@ -754,7 +754,7 @@ export class File {
*/
@CordovaCheck()
writeFile(path: string, fileName: string,
text: string | Blob | ArrayBuffer, options: WriteOptions = {}): Promise<any> {
text: string | Blob | ArrayBuffer, options: WriteOptions = {}): Promise<any> {
if ((/^\//.test(fileName))) {
const err = new FileError(5);
err.message = 'file-name cannot start with \/';
@@ -821,37 +821,9 @@ export class File {
*/
@CordovaCheck()
readAsText(path: string, file: string): Promise<string> {
if ((/^\//.test(file))) {
let err = new FileError(5);
err.message = 'file-name cannot start with \/';
return Promise.reject<any>(err);
}
return this.resolveDirectoryUrl(path)
.then((directoryEntry: DirectoryEntry) => {
return this.getFile(directoryEntry, file, {create: false});
})
.then((fileEntry: FileEntry) => {
let reader = new FileReader();
return new Promise<any>((resolve, reject) => {
reader.onloadend = () => {
if (reader.result !== undefined || reader.result !== null) {
resolve(reader.result);
} else if (reader.error !== undefined || reader.error !== null) {
reject(reader.error);
} else {
reject({code: null, message: 'READER_ONLOADEND_ERR'});
}
};
fileEntry.file(file => {
reader.readAsText(file);
}, error => {
reject(error);
});
});
});
return this.readFile<string>(path, file, 'Text');
}
/**
* Read file and return data as a base64 encoded data url.
* A data url is of the form:
@@ -863,80 +835,18 @@ export class File {
*/
@CordovaCheck()
readAsDataURL(path: string, file: string): Promise<string> {
if ((/^\//.test(file))) {
let err = new FileError(5);
err.message = 'file-name cannot start with \/';
return Promise.reject<any>(err);
}
return this.resolveDirectoryUrl(path)
.then((directoryEntry: DirectoryEntry) => {
return this.getFile(directoryEntry, file, {create: false});
})
.then((fileEntry: FileEntry) => {
let reader = new FileReader();
return new Promise<any>((resolve, reject) => {
reader.onloadend = () => {
if (reader.result !== undefined || reader.result !== null) {
resolve(reader.result);
} else if (reader.error !== undefined || reader.error !== null) {
reject(reader.error);
} else {
reject({code: null, message: 'READER_ONLOADEND_ERR'});
}
};
fileEntry.file(file => {
reader.readAsDataURL(file);
}, error => {
reject(error);
});
});
});
return this.readFile<string>(path, file, 'DataURL');
}
/**
* Read file and return data as a binary data.
* @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above
* @param {string} file Name of file, relative to path.
* @returns {Promise<string>} Returns a Promise that resolves with the contents of the file as string rejects with an error.
*/
@CordovaCheck()
readAsBinaryString(path: string, file: string): Promise<string> {
if ((/^\//.test(file))) {
let err = new FileError(5);
err.message = 'file-name cannot start with \/';
return Promise.reject<any>(err);
}
return this.resolveDirectoryUrl(path)
.then((directoryEntry: DirectoryEntry) => {
return this.getFile(directoryEntry, file, {create: false});
})
.then((fileEntry: FileEntry) => {
let reader = new FileReader();
return new Promise<any>((resolve, reject) => {
reader.onloadend = () => {
if (reader.result !== undefined || reader.result !== null) {
resolve(reader.result);
} else if (reader.error !== undefined || reader.error !== null) {
reject(reader.error);
} else {
reject({code: null, message: 'READER_ONLOADEND_ERR'});
}
};
fileEntry.file(file => {
reader.readAsBinaryString(file);
}, error => {
reject(error);
});
});
});
return this.readFile<string>(path, file, 'BinaryString');
}
/**
@@ -947,6 +857,10 @@ export class File {
*/
@CordovaCheck()
readAsArrayBuffer(path: string, file: string): Promise<ArrayBuffer> {
return this.readFile<ArrayBuffer>(path, file, 'ArrayBuffer');
}
private readFile<T>(path: string, file: string, readAs: 'ArrayBuffer' | 'BinaryString' | 'DataURL' | 'Text'): Promise<T> {
if ((/^\//.test(file))) {
let err = new FileError(5);
err.message = 'file-name cannot start with \/';
@@ -955,23 +869,23 @@ export class File {
return this.resolveDirectoryUrl(path)
.then((directoryEntry: DirectoryEntry) => {
return this.getFile(directoryEntry, file, {create: false});
return this.getFile(directoryEntry, file, { create: false });
})
.then((fileEntry: FileEntry) => {
let reader = new FileReader();
return new Promise<any>((resolve, reject) => {
return new Promise<T>((resolve, reject) => {
reader.onloadend = () => {
if (reader.result !== undefined || reader.result !== null) {
resolve(reader.result);
resolve(<T><any>reader.result);
} else if (reader.error !== undefined || reader.error !== null) {
reject(reader.error);
} else {
reject({code: null, message: 'READER_ONLOADEND_ERR'});
reject({ code: null, message: 'READER_ONLOADEND_ERR' });
}
};
fileEntry.file(file => {
reader.readAsArrayBuffer(file);
reader[`readAs${readAs}`].call(null, file);
}, error => {
reject(error);
});
@@ -1001,7 +915,7 @@ export class File {
return this.resolveDirectoryUrl(path)
.then((fse) => {
return this.getFile(fse, fileName, {create: false});
return this.getFile(fse, fileName, { create: false });
})
.then((srcfe) => {
return this.resolveDirectoryUrl(newPath)
@@ -1032,7 +946,7 @@ export class File {
return this.resolveDirectoryUrl(path)
.then((fse) => {
return this.getFile(fse, fileName, {create: false});
return this.getFile(fse, fileName, { create: false });
})
.then((srcfe) => {
return this.resolveDirectoryUrl(newPath)
@@ -1048,7 +962,7 @@ export class File {
private fillErrorMessage(err: FileError): void {
try {
err.message = this.cordovaFileError[err.code];
} catch (e) {}
} catch (e) { }
}
/**
@@ -1144,7 +1058,7 @@ export class File {
private remove(fe: Entry): Promise<RemoveResult> {
return new Promise<RemoveResult>((resolve, reject) => {
fe.remove(() => {
resolve({success: true, fileRemoved: fe});
resolve({ success: true, fileRemoved: fe });
}, (err) => {
this.fillErrorMessage(err);
reject(err);
@@ -1200,7 +1114,7 @@ export class File {
private rimraf(de: DirectoryEntry): Promise<RemoveResult> {
return new Promise<RemoveResult>((resolve, reject) => {
de.removeRecursively(() => {
resolve({success: true, fileRemoved: de});
resolve({ success: true, fileRemoved: de });
}, (err) => {
this.fillErrorMessage(err);
reject(err);

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
export interface FingerprintOptions {
@@ -20,7 +20,6 @@ export interface FingerprintOptions {
}
/**
* @beta
* @name Fingerprint AIO
* @description
* Use simple fingerprint authentication on Android and iOS.
@@ -35,8 +34,8 @@ export interface FingerprintOptions {
* ...
*
* this.faio.show({
* clientId: "Fingerprint-Demo",
* clientSecret: "password", //Only necessary for Android
* clientId: 'Fingerprint-Demo',
* clientSecret: 'password', //Only necessary for Android
* disableBackup:true //Only for Android(optional)
* })
* .then((result: any) => console.log(result))
@@ -54,7 +53,7 @@ export interface FingerprintOptions {
platforms: ['Android', 'iOS']
})
@Injectable()
export class FingerprintAIO {
export class FingerprintAIO extends IonicNativePlugin {
/**
* Check if fingerprint authentication is available

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
@@ -8,7 +8,7 @@ import { Observable } from 'rxjs/Observable';
* This plugin brings push notifications, analytics, event tracking, crash reporting and more from Google Firebase to your Cordova project! Android and iOS supported (including iOS 10).
*
* @usage
* ```
* ```typescript
* import { Firebase } from '@ionic-native/firebase';
*
* constructor(private firebase: Firebase) { }
@@ -32,7 +32,7 @@ import { Observable } from 'rxjs/Observable';
platforms: ['Android', 'iOS']
})
@Injectable()
export class Firebase {
export class Firebase extends IonicNativePlugin {
/**
* Get the device token
@@ -60,7 +60,7 @@ export class Firebase {
onNotificationOpen(): Observable<any> { return; }
/**
* Grant permission to recieve push notifications
* Grant permission to receive push notifications
* @return {Promise<any>}
*/
@Cordova({
@@ -68,13 +68,11 @@ export class Firebase {
})
grantPermission(): Promise<any> { return; }
/**
* Check permission to recieve push notifications
* @return {Promise<any>}
*/
@Cordova({
platforms: ['iOS']
})
/**
* Check permission to receive push notifications
* @return {Promise<any>}
*/
@Cordova()
hasPermission(): Promise<any> { return; }
/**
@@ -117,6 +115,14 @@ export class Firebase {
@Cordova()
logEvent(type: string, data: any): Promise<any> { return; }
/**
* Log an Error using FirebaseCrash
* @param message {string}
* @return {Promise<any>}
*/
@Cordova()
logError(message: string): Promise<any> { return; }
/**
* Set the name of the current screen in Analytics
* @param name {string} Screen name
@@ -148,7 +154,6 @@ export class Firebase {
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android'],
successIndex: 1,
errorIndex: 2
})
@@ -158,9 +163,7 @@ export class Firebase {
* Activate the Remote Config fetched config
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android']
})
@Cordova()
activateFetched(): Promise<any> { return; }
/**
@@ -170,7 +173,6 @@ export class Firebase {
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android'],
successIndex: 2,
errorIndex: 3
})

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Flashlight
@@ -17,7 +17,6 @@ import { Cordova, Plugin } from '@ionic-native/core';
*
* this.flashlight.switchOn();
*
*
* ```
*/
@Plugin({
@@ -28,7 +27,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android', 'iOS', 'Windows Phone 8']
})
@Injectable()
export class Flashlight {
export class Flashlight extends IonicNativePlugin {
/**
* Checks if the flashlight is available

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, CordovaInstance, checkAvailability, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
export interface FlurryAnalyticsOptions {
@@ -72,91 +72,47 @@ export interface FlurryAnalyticsLocation {
horizontalAccuracy?: number;
}
/**
* @name Flurry Analytics
* @description
* This plugin connects to Flurry Analytics SDK
*
* @usage
* ```
* import { FlurryAnalytics } from 'ionic-native/flurry-analytics';
*
* constructor(private flurryAnalytics: FlurryAnalytics) { }
*
* ...
*
* constant options: FlurryAnalyticsOptions = {
* reportSessionsOnClose: true,
* enableLogging: true
* }
*
* FlurryAnalytics.init('12345678965412303214', options)
* .then((something: any) => doSomething(something))
* .catch((error: any) => console.log(error));
*
* ```
* @interfaces
* FlurryAnalyticsOptions
* FlurryAnalyticsLocation
*/
@Plugin({
pluginName: 'FlurryAnalyticsPlugin',
plugin: 'cordova-plugin-flurryanalytics',
pluginRef: 'fa',
repo: 'https://github.com/blakgeek/cordova-plugin-flurryanalytics.git',
platforms: ['Android', 'iOS', 'Browser']
})
@Injectable()
export class FlurryAnalytics {
export class FlurryAnalyticsObject {
/**
* Set the setting for Flurry Analytics
* @param appKey {string} API key is required
* @param options {FlurryAnalyticsOptions} is optional
* @return {Promise<any>}
*/
@Cordova()
init(appKey: string, options?: FlurryAnalyticsOptions): Promise<any> {
return;
}
constructor(private _objectInstance: any) { }
/**
* This function set the Event
* @param eventName {string} The param to configure name of Event
* @param params {Object} optional
* @return {Promise<any>} Returns a promise that resolves when event is set
* @param eventName {string} Name of the event
* @param [params] {Object} Optional params
* @return {Promise<any>} Returns a promise that resolves when event is sent
*/
@Cordova({
successIndex: 1,
errorIndex: 0
@CordovaInstance({
successIndex: 2,
errorIndex: 3
})
logEvent(eventName: string, params?: any): Promise<any> {
return;
}
/**
* This function start a timed event
* @param eventName
* @param params {Object} optional
* Start a timed event
* @param eventName {string} Name of the event
* @param [params] {Object} Optional params
* @return {Promise<any>} Returns a promise that resolves when timed event is started tracking
*/
@Cordova({
successIndex: 1,
errorIndex: 0
@CordovaInstance({
successIndex: 2,
errorIndex: 3
})
startTimedEvent(eventName: string, params?: Object): Promise<any> {
return;
}
/**
* This function complete a timed event
* @param eventName
* @param params {Object} optional
* Complete a timed event
* @param eventName {string} Name of the event
* @param [params] {Object} Optional params
* @return {Promise<any>} Returns a promise that resolves when timed event is ended tracking
*/
@Cordova({
successIndex: 1,
errorIndex: 0
@CordovaInstance({
successIndex: 2,
errorIndex: 3
})
endTimedEvent(eventName: string, params?: Object): Promise<any> {
return;
@@ -168,11 +124,8 @@ export class FlurryAnalytics {
* @param message
* @return {Promise<any>}
*/
@Cordova({
successIndex: 1,
errorIndex: 0
})
logError(code, message): Promise<any> {
@CordovaInstance()
logError(code: any, message: any): Promise<any> {
return;
}
@@ -180,7 +133,7 @@ export class FlurryAnalytics {
* This function log a page view
* @return {Promise<any>}
*/
@Cordova()
@CordovaInstance()
logPageView(): Promise<any> {
return;
}
@@ -188,14 +141,12 @@ export class FlurryAnalytics {
/**
* This function set the location for the event
* (this is will only be used for very course grained statistics like city)
* @param location
* @param location {FlurryAnalyticsLocation}
* @param message {string}
* @return {Promise<any>}
*/
@Cordova({
successIndex: 1,
errorIndex: 0
})
setLocation(location: FlurryAnalyticsLocation): Promise<any> {
@CordovaInstance()
setLocation(location: FlurryAnalyticsLocation, message: string): Promise<any> {
return;
}
@@ -204,7 +155,7 @@ export class FlurryAnalytics {
* Only needed for older versions of Android
* @return {Promise<any>}
*/
@Cordova()
@CordovaInstance()
startSession(): Promise<any> {
return;
}
@@ -214,8 +165,70 @@ export class FlurryAnalytics {
* Only needed for older versions of Android
* @return {Promise<any>}
*/
@Cordova()
@CordovaInstance()
endSession(): Promise<any> {
return;
}
}
/**
* @name Flurry Analytics
* @description
* This plugin connects to Flurry Analytics SDK
*
* @usage
* ```typescript
* import { FlurryAnalytics, FlurryAnalyticsObject, FlurryAnalyticsOptions } from 'ionic-native/flurry-analytics';
*
* constructor(private flurryAnalytics: FlurryAnalytics) { }
*
* ...
*
* const options: FlurryAnalyticsOptions = {
* appKey: '<your app key>', // REQUIRED
* reportSessionsOnClose: true,
* enableLogging: true
* };
*
* let fa: FlurryAnalyticsObject = this.flurryAnalytics.create(options);
*
* fa.logEvent('event name')
* .then(() => console.log('Logged an event!'))
* .catch(e => console.log('Error logging the event', e));
*
* ```
* @interfaces
* FlurryAnalyticsOptions
* FlurryAnalyticsLocation
* @classes
* FlurryAnalyticsObject
*/
@Plugin({
pluginName: 'FlurryAnalytics',
plugin: 'cordova-plugin-flurryanalytics',
pluginRef: 'FlurryAnalytics',
repo: 'https://github.com/blakgeek/cordova-plugin-flurryanalytics.git',
platforms: ['Android', 'iOS', 'Browser']
})
@Injectable()
export class FlurryAnalytics extends IonicNativePlugin {
/**
* Creates a new instance of FlurryAnalyticsObject
* @param options {FlurryAnalyticsOptions} options
* @return {FlurryAnalyticsObject}
*/
create(options: FlurryAnalyticsOptions): FlurryAnalyticsObject {
let instance: any;
if (checkAvailability(FlurryAnalytics.pluginRef, null, FlurryAnalytics.pluginName) === true) {
instance = new (window as any).FlurryAnalaytics(options);
}
return new FlurryAnalyticsObject(instance);
}
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, CordovaFunctionOverride } from '@ionic-native/core';
import { Cordova, Plugin, CordovaFunctionOverride, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
declare var window: any;
@@ -9,7 +9,7 @@ declare var window: any;
* @description Monitors circular geofences around latitude/longitude coordinates, and sends a notification to the user when the boundary of a geofence is crossed. Notifications can be sent when the user enters and/or exits a geofence.
* Geofences persist after device reboot. Geofences will be monitored even when the app is not running.
* @usage
* ```
* ```typescript
* import { Geofence } from '@ionic-native/geofence';
*
* ...
@@ -28,15 +28,15 @@ declare var window: any;
* private addGeofence() {
* //options describing geofence
* let fence = {
* id: "69ca1b88-6fbe-4e80-a4d4-ff4d3748acdb", //any unique ID
* id: '69ca1b88-6fbe-4e80-a4d4-ff4d3748acdb', //any unique ID
* latitude: 37.285951, //center of geofence radius
* longitude: -121.936650,
* radius: 100, //radius to edge of geofence
* radius: 100, //radius to edge of geofence in meters
* transitionType: 3, //see 'Transition Types' below
* notification: { //notification settings
* id: 1, //any unique ID
* title: "You crossed a fence", //notification title
* text: "You just arrived to Gliwice city center.", //notification body
* title: 'You crossed a fence', //notification title
* text: 'You just arrived to Gliwice city center.', //notification body
* openAppOnClick: true //open app when notification is tapped
* }
* }
@@ -83,7 +83,7 @@ declare var window: any;
platforms: ['Android', 'iOS', 'Windows Phone 8', 'Windows Phone']
})
@Injectable()
export class Geofence {
export class Geofence extends IonicNativePlugin {
public TransitionType = {
ENTER: 1,
@@ -148,7 +148,7 @@ export class Geofence {
return new Observable<any>((observer) => {
window && window.geofence && (window.geofence.onTransitionReceived = observer.next.bind(observer));
return () => window.geofence.onTransitionReceived = () => {};
return () => window.geofence.onTransitionReceived = () => { };
});
}
@@ -162,7 +162,7 @@ export class Geofence {
return new Observable<any>((observer) => {
window && window.geofence && (window.geofence.onNotificationClicked = observer.next.bind(observer));
return () => window.geofence.onNotificationClicked = () => {};
return () => window.geofence.onNotificationClicked = () => { };
});
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
declare var navigator: any;
@@ -74,7 +74,7 @@ export interface PositionError {
/**
* A message that can describe the error that occurred
*/
message: string;
message: string;
}
@@ -156,7 +156,7 @@ export interface GeolocationOptions {
platforms: ['Android', 'Firefox OS', 'iOS', 'Ubuntu', 'Windows', 'Windows Phone']
})
@Injectable()
export class Geolocation {
export class Geolocation extends IonicNativePlugin {
/**
* Get the device's current position.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Globalization
@@ -29,7 +29,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Amazon Fire OS', 'Android', 'BlackBerry 10', 'Firefox OS', 'iOS', 'Windows Phone 8', 'Widnows', 'Browser']
})
@Injectable()
export class Globalization {
export class Globalization extends IonicNativePlugin {
/**
* Returns the BCP-47 compliant language identifier tag to the successCallback with a properties object as a parameter. That object should have a value property with a String value.
@@ -72,12 +72,12 @@ export class Globalization {
/**
* Returns a pattern string to format and parse dates according to the client's user preferences.
* @param options Object with the format length and selector
* @returns {Promise<{pattern: string}>} Returns a promise.
* @returns {Promise<{ pattern: string, timezone: string, utf_offset: number, dst_offset: number }>} Returns a promise.
*/
@Cordova({
callbackOrder: 'reverse'
})
getDatePattern(options: { formatLength: string, selector: string }): Promise<{ pattern: string }> { return; }
getDatePattern(options: { formatLength: string, selector: string }): Promise<{ pattern: string, timezone: string, utf_offset: number, dst_offset: number }> { return; }
/**
* Returns an array of the names of the months or days of the week, depending on the client's user preferences and calendar.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
declare var window;
@@ -39,7 +39,7 @@ declare var window;
platforms: ['Android', 'iOS', 'Browser']
})
@Injectable()
export class GoogleAnalytics {
export class GoogleAnalytics extends IonicNativePlugin {
/**
* In your 'deviceready' handler, set up your Analytics tracker.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, CordovaInstance, CordovaCheck, Plugin, InstanceProperty, InstanceCheck, checkAvailability } from '@ionic-native/core';
import { Cordova, CordovaInstance, CordovaCheck, Plugin, InstanceProperty, InstanceCheck, checkAvailability, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
@@ -42,12 +42,12 @@ export const GoogleMapsAnimation = {
* @hidden
*/
export const GoogleMapsMapTypeId = {
HYBRID: 'MAP_TYPE_HYBRID',
NONE: 'MAP_TYPE_NONE',
NORMAL: 'MAP_TYPE_NORMAL',
ROADMAP: 'MAP_TYPE_ROADMAP',
SATELLITE: 'MAP_TYPE_SATELLITE',
TERAIN: 'MAP_TYPE_TERRAIN'
HYBRID: 'MAP_TYPE_HYBRID',
NONE: 'MAP_TYPE_NONE',
NORMAL: 'MAP_TYPE_NORMAL',
ROADMAP: 'MAP_TYPE_ROADMAP',
SATELLITE: 'MAP_TYPE_SATELLITE',
TERAIN: 'MAP_TYPE_TERRAIN'
};
/**
@@ -214,13 +214,13 @@ export class GoogleMap {
@InstanceCheck()
addMarker(options: MarkerOptions): Promise<Marker | any> {
return new Promise<Marker>((resolve, reject) => {
this._objectInstance.addMarker(options, (marker: any) => {
if (marker) {
resolve(new Marker(marker));
} else {
reject();
}
});
this._objectInstance.addMarker(options, (marker: any) => {
if (marker) {
resolve(new Marker(marker));
} else {
reject();
}
});
});
}
@@ -230,13 +230,13 @@ export class GoogleMap {
@InstanceCheck()
addCircle(options: CircleOptions): Promise<Circle | any> {
return new Promise<Circle>((resolve, reject) => {
this._objectInstance.addCircle(options, (circle: any) => {
if (circle) {
resolve(new Circle(circle));
} else {
reject();
}
});
this._objectInstance.addCircle(options, (circle: any) => {
if (circle) {
resolve(new Circle(circle));
} else {
reject();
}
});
});
}
@@ -246,13 +246,13 @@ export class GoogleMap {
@InstanceCheck()
addPolygon(options: PolygonOptions): Promise<Polygon | any> {
return new Promise<Polygon>((resolve, reject) => {
this._objectInstance.addPolygon(options, (polygon: any) => {
if (polygon) {
resolve(new Polygon(polygon));
} else {
reject();
}
});
this._objectInstance.addPolygon(options, (polygon: any) => {
if (polygon) {
resolve(new Polygon(polygon));
} else {
reject();
}
});
});
}
@@ -262,13 +262,13 @@ export class GoogleMap {
@InstanceCheck()
addPolyline(options: PolylineOptions): Promise<Polyline | any> {
return new Promise<Polyline>((resolve, reject) => {
this._objectInstance.addPolyline(options, (polyline: any) => {
if (polyline) {
resolve(new Polyline(polyline));
} else {
reject();
}
});
this._objectInstance.addPolyline(options, (polyline: any) => {
if (polyline) {
resolve(new Polyline(polyline));
} else {
reject();
}
});
});
}
@@ -278,13 +278,13 @@ export class GoogleMap {
@InstanceCheck()
addTileOverlay(options: TileOverlayOptions): Promise<TileOverlay | any> {
return new Promise<TileOverlay>((resolve, reject) => {
this._objectInstance.addTileOverlay(options, (tileOverlay: any) => {
if (tileOverlay) {
resolve(new TileOverlay(tileOverlay));
} else {
reject();
}
});
this._objectInstance.addTileOverlay(options, (tileOverlay: any) => {
if (tileOverlay) {
resolve(new TileOverlay(tileOverlay));
} else {
reject();
}
});
});
}
@@ -294,13 +294,13 @@ export class GoogleMap {
@InstanceCheck()
addGroundOverlay(options: GroundOverlayOptions): Promise<GroundOverlay | any> {
return new Promise<GroundOverlay>((resolve, reject) => {
this._objectInstance.addGroundOverlay(options, (groundOverlay: any) => {
if (groundOverlay) {
resolve(new GroundOverlay(groundOverlay));
} else {
reject();
}
});
this._objectInstance.addGroundOverlay(options, (groundOverlay: any) => {
if (groundOverlay) {
resolve(new GroundOverlay(groundOverlay));
} else {
reject();
}
});
});
}
@@ -310,13 +310,13 @@ export class GoogleMap {
@InstanceCheck()
addKmlOverlay(options: KmlOverlayOptions): Promise<KmlOverlay | any> {
return new Promise<KmlOverlay>((resolve, reject) => {
this._objectInstance.addKmlOverlay(options, (kmlOverlay: any) => {
if (kmlOverlay) {
resolve(new KmlOverlay(kmlOverlay));
} else {
reject();
}
});
this._objectInstance.addKmlOverlay(options, (kmlOverlay: any) => {
if (kmlOverlay) {
resolve(new KmlOverlay(kmlOverlay));
} else {
reject();
}
});
});
}
@@ -351,7 +351,7 @@ export class GoogleMap {
* @returns {Promise<LatLng>}
*/
@CordovaInstance()
fromPointToLatLng(point: any, latLng: LatLng): Promise<LatLng> { return; }
fromPointToLatLng(point: any): Promise<LatLng> { return; }
/**
* @returns {Promise<any>}
@@ -363,14 +363,14 @@ export class GoogleMap {
remove(): void { }
@CordovaInstance({ sync: true })
panBy(): void { }
panBy(x: string | number, y: string | number): void { }
}
/**
* @name Google Maps
* @description This plugin uses the native Google Maps SDK
* @usage
* ```
* ```typescript
* import {
* GoogleMaps,
* GoogleMap,
@@ -403,7 +403,12 @@ export class GoogleMap {
*
* // listen to MAP_READY event
* // You must wait for this event to fire before adding something to the map or modifying it in anyway
* map.one(GoogleMapsEvent.MAP_READY).then(() => console.log('Map is ready!'));
* map.one(GoogleMapsEvent.MAP_READY).then(
* () => {
* console.log('Map is ready!');
* // Now you can add elements to the map like the marker
* }
* );
*
* // create LatLng object
* let ionic: LatLng = new LatLng(43.0741904,-89.3809802);
@@ -455,7 +460,7 @@ export class GoogleMap {
platforms: ['Android', 'iOS']
})
@Injectable()
export class GoogleMaps {
export class GoogleMaps extends IonicNativePlugin {
/**
* Checks if a map object has been created and is available.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Google Plus
@@ -28,7 +28,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
installVariables: ['REVERSED_CLIENT_ID']
})
@Injectable()
export class GooglePlus {
export class GooglePlus extends IonicNativePlugin {
/**
* The login function walks the user through the Google Auth process.

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
import { Injectable } from '@angular/core';
@@ -43,7 +43,7 @@ export interface GyroscopeOptions {
* @name Gyroscope
* @description Read Gyroscope sensor data
* @usage
* ```
* ```typescript
* import { Gyroscope, GyroscopeOrientation, GyroscopeOptions } from '@ionic-native/gyroscope';
*
*
@@ -81,7 +81,7 @@ export interface GyroscopeOptions {
platforms: ['Android', 'iOS']
})
@Injectable()
export class Gyroscope {
export class Gyroscope extends IonicNativePlugin {
/**
* Watching for gyroscope sensor changes
@@ -89,7 +89,7 @@ export class Gyroscope {
* @return {Observable<GyroscopeOrientation>} Returns an Observable that resolves GyroscopeOrientation
*/
watch(options?: GyroscopeOptions): Observable<GyroscopeOrientation> {
return new Observable<GyroscopeOrientation> (
return new Observable<GyroscopeOrientation>(
(observer: any) => {
let watchId = navigator.gyroscope.watch(observer.next.bind(observer), observer.next.bind(observer), options);
return () => navigator.gyroscope.clearWatch(watchId);

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Header Color
@@ -14,7 +14,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
*
* ...
*
* this.headerColor.tint("#becb29");
* this.headerColor.tint('#becb29');
* ```
*/
@Plugin({
@@ -25,7 +25,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
platforms: ['Android']
})
@Injectable()
export class HeaderColor {
export class HeaderColor extends IonicNativePlugin {
/**
* Set a color to the task header

View File

@@ -0,0 +1,309 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
export interface HealthKitOptions {
/**
* HKWorkoutActivityType constant
* Read more here: https://developer.apple.com/library/ios/documentation/HealthKit/Reference/HKWorkout_Class/#//apple_ref/c/tdef/HKWorkoutActivityType
*/
activityType?: string; //
/**
* 'hour', 'week', 'year' or 'day', default 'day'
*/
aggregation?: string;
/**
*
*/
amount?: number;
/**
*
*/
correlationType?: string;
/**
*
*/
date?: any;
/**
*
*/
distance?: number;
/**
* probably useful with the former param
*/
distanceUnit?: string;
/**
* in seconds, optional, use either this or endDate
*/
duration?: number;
/**
*
*/
endDate?: any;
/**
*
*/
energy?: number;
/**
* J|cal|kcal
*/
energyUnit?: string;
/**
*
*/
extraData?: any;
/**
*
*/
metadata?: any;
/**
*
*/
quantityType?: string;
/**
*
*/
readTypes?: any;
/**
*
*/
requestWritePermission?: boolean;
/**
*
*/
samples?: any;
/**
*
*/
sampleType?: string;
/**
*
*/
startDate?: any;
/**
* m|cm|mm|in|ft
*/
unit?: string;
/**
*
*/
requestReadPermission?: boolean;
/**
*
*/
writeTypes?: any;
}
/**
* @name Health Kit
* @description
* The HealthKit plugin allows you to read data from and write data to the iOS 8+ HealthKit framework.
* Any data saved shows up in the iOS Health app and is available for other iOS apps.
*
* @usage
* ```typescript
* import { HealthKit } from '@ionic-native/health-kit';
*
*
* constructor(private healthKit: HealthKit) { }
*
* ...
* ```
*
* @interfaces
* HealthKitOptions
*/
@Plugin({
pluginName: 'HealthKit',
plugin: 'com.telerik.plugins.healthkit',
pluginRef: 'window.plugins.healthkit',
repo: 'https://github.com/Telerik-Verified-Plugins/HealthKit',
platforms: ['iOS']
})
@Injectable()
export class HealthKit extends IonicNativePlugin {
/**
* Check if HealthKit is supported (iOS8+, not on iPad)
* @returns {Promise<any>}
*/
@Cordova()
available(): Promise<any> { return; }
/**
* Pass in a type and get back on of undetermined | denied | authorized
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
checkAuthStatus(options: HealthKitOptions): Promise<any> { return; }
/**
* Ask some or all permissions up front
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
requestAuthorization(options: HealthKitOptions): Promise<any> { return; }
/**
* Formatted as yyyy-MM-dd
* @returns {Promise<any>}
*/
@Cordova()
readDateOfBirth(): Promise<any> { return; }
/**
* Output = male|female|other|unknown
* @returns {Promise<any>}
*/
@Cordova()
readGender(): Promise<any> { return; }
/**
* Output = A+|A-|B+|B-|AB+|AB-|O+|O-|unknown
* @returns {Promise<any>}
*/
@Cordova()
readBloodType(): Promise<any> { return; }
/**
* Output = I|II|III|IV|V|VI|unknown
* @returns {Promise<any>}
*/
@Cordova()
readFitzpatrickSkinType(): Promise<any> { return; }
/**
* Pass in unit (g=gram, kg=kilogram, oz=ounce, lb=pound, st=stone) and amount
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
saveWeight(options: HealthKitOptions): Promise<any> { return; }
/**
* Pass in unit (g=gram, kg=kilogram, oz=ounce, lb=pound, st=stone)
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
readWeight(options: HealthKitOptions): Promise<any> { return; }
/**
* Pass in unit (mm=millimeter, cm=centimeter, m=meter, in=inch, ft=foot) and amount
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
saveHeight(options: HealthKitOptions): Promise<any> { return; }
/**
* Pass in unit (mm=millimeter, cm=centimeter, m=meter, in=inch, ft=foot)
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
readHeight(options: HealthKitOptions): Promise<any> { return; }
/**
* no params yet, so this will return all workouts ever of any type
* @returns {Promise<any>}
*/
@Cordova()
findWorkouts(): Promise<any> { return; }
/**
*
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
saveWorkout(options: HealthKitOptions): Promise<any> { return; }
/**
*
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
querySampleType(options: HealthKitOptions): Promise<any> { return; }
/**
*
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
querySampleTypeAggregated(options: HealthKitOptions): Promise<any> { return; }
/**
*
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
deleteSamples(options: HealthKitOptions): Promise<any> { return; }
/**
*
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
monitorSampleType(options: HealthKitOptions): Promise<any> { return; }
/**
*
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
sumQuantityType(options: HealthKitOptions): Promise<any> { return; }
/**
*
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
saveQuantitySample(options: HealthKitOptions): Promise<any> { return; }
/**
*
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
saveCorrelation(options: HealthKitOptions): Promise<any> { return; }
/**
*
* @param options {HealthKitOptions}
* @returns {Promise<any>}
*/
@Cordova()
queryCorrelationType(options: HealthKitOptions): Promise<any> { return; }
}

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
/**
@@ -160,7 +160,7 @@ export interface HealthData {
* A plugin that abstracts fitness and health repositories like Apple HealthKit or Google Fit.
*
* @usage
* ```
* ```typescript
* import { Health } from '@ionic-native/health';
*
*
@@ -200,7 +200,7 @@ export interface HealthData {
platforms: ['Android', 'iOS']
})
@Injectable()
export class Health {
export class Health extends IonicNativePlugin {
/**
* Tells if either Google Fit or HealthKit are available.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface HotspotConnectionInfo {
@@ -133,7 +133,7 @@ export interface HotspotDevice {
platforms: ['Android']
})
@Injectable()
export class Hotspot {
export class Hotspot extends IonicNativePlugin {
/**
* @returns {Promise<boolean>}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
export interface HTTPResponse {
/**
@@ -30,7 +30,7 @@ export interface HTTPResponse {
* - SSL Pinning
*
* @usage
* ```
* ```typescript
* import { HTTP } from '@ionic-native/http';
*
* constructor(private http: HTTP) { }
@@ -65,7 +65,7 @@ export interface HTTPResponse {
platforms: ['Android', 'iOS']
})
@Injectable()
export class HTTP {
export class HTTP extends IonicNativePlugin {
/**
* This returns an object representing a basic HTTP Authorization header of the form.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface HttpdOptions {
@@ -55,7 +55,7 @@ export interface HttpdOptions {
platforms: ['iOS', 'Android']
})
@Injectable()
export class Httpd {
export class Httpd extends IonicNativePlugin {
/**
* Starts a web server.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, CordovaCheck } from '@ionic-native/core';
import { Cordova, Plugin, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
declare var cordova: any;
@@ -286,7 +286,7 @@ export interface IBeaconDelegate {
platforms: ['Android', 'iOS']
})
@Injectable()
export class IBeacon {
export class IBeacon extends IonicNativePlugin {
/**
* Instances of this class are delegates between the {@link LocationManager} and
@@ -434,7 +434,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer acknowledged the request and started to send events.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
onDomDelegateReady(): Promise<void> { return; }
/**
@@ -442,7 +442,7 @@ export class IBeacon {
* @returns {Promise<boolean>} Returns a promise which is resolved with a {Boolean}
* indicating whether bluetooth is active.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
isBluetoothEnabled(): Promise<boolean> { return; }
/**
@@ -451,7 +451,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved when Bluetooth
* could be enabled. If not, the promise will be rejected with an error.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
enableBluetooth(): Promise<void> { return; }
/**
@@ -460,7 +460,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved when Bluetooth
* could be enabled. If not, the promise will be rejected with an error.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
disableBluetooth(): Promise<void> { return; }
/**
@@ -480,7 +480,7 @@ export class IBeacon {
* @returns {Promise<string>} Returns a promise which is resolved as soon as the
* native layer acknowledged the dispatch of the monitoring request.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
startMonitoringForRegion(region: BeaconRegion): Promise<string> { return; }
/**
@@ -497,7 +497,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer acknowledged the dispatch of the request to stop monitoring.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
stopMonitoringForRegion(region: BeaconRegion): Promise<void> { return; }
/**
@@ -513,7 +513,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer acknowledged the dispatch of the request to stop monitoring.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
requestStateForRegion(region: Region): Promise<void> { return; }
@@ -531,7 +531,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer acknowledged the dispatch of the monitoring request.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
startRangingBeaconsInRegion(region: BeaconRegion): Promise<void> { return; }
/**
@@ -548,7 +548,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer acknowledged the dispatch of the request to stop monitoring.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
stopRangingBeaconsInRegion(region: BeaconRegion): Promise<void> { return; }
/**
@@ -557,7 +557,7 @@ export class IBeacon {
* @returns {Promise<IBeaconPluginResult>} Returns a promise which is resolved with the
* requested authorization status.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
getAuthorizationStatus(): Promise<IBeaconPluginResult> { return; }
/**
@@ -569,7 +569,7 @@ export class IBeacon {
* If you are using this plugin on Android devices only, you will never have to use this, nor {@code requestAlwaysAuthorization}
* @returns {Promise<void>} Returns a promise that is resolved when the request dialog is shown.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
requestWhenInUseAuthorization(): Promise<void> { return; }
@@ -579,7 +579,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved when the native layer
* shows the request dialog.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
requestAlwaysAuthorization(): Promise<void> { return; }
/**
@@ -587,7 +587,7 @@ export class IBeacon {
* @returns {Promise<Region[]>} Returns a promise which is resolved with an {Array}
* of {Region} instances that are being monitored by the native layer.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
getMonitoredRegions(): Promise<Region[]> { return; }
/**
@@ -595,7 +595,7 @@ export class IBeacon {
* @returns {Promise<Region[]>} Returns a promise which is resolved with an {Array}
* of {Region} instances that are being ranged by the native layer.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
getRangedRegions(): Promise<Region[]> { return; }
/**
@@ -603,7 +603,7 @@ export class IBeacon {
* @returns {Promise<boolean>} Returns a promise which is resolved with a {Boolean}
* indicating whether ranging is available or not.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
isRangingAvailable(): Promise<boolean> { return; }
/**
@@ -615,7 +615,7 @@ export class IBeacon {
* @returns {Promise<boolean>} Returns a promise which is resolved with a {Boolean}
* indicating whether the region type is supported or not.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
isMonitoringAvailableForClass(region: Region): Promise<boolean> { return; }
/**
@@ -635,7 +635,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer acknowledged the dispatch of the advertising request.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
startAdvertising(region: Region, measuredPower: number): Promise<void> { return; }
/**
@@ -646,7 +646,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer acknowledged the dispatch of the request to stop advertising.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
stopAdvertising(region: Region): Promise<void> { return; }
/**
@@ -654,7 +654,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved with a {Boolean}
* indicating whether advertising is available or not.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
isAdvertisingAvailable(): Promise<boolean> { return; }
/**
@@ -662,7 +662,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved with a {Boolean}
* indicating whether advertising is active.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
isAdvertising(): Promise<boolean> { return; }
/**
@@ -672,7 +672,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer has set the logging level accordingly.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
disableDebugLogs(): Promise<void> { return; }
/**
@@ -683,7 +683,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer has set the flag to enabled.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
enableDebugNotifications(): Promise<void> { return; }
/**
@@ -693,7 +693,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer has set the flag to disabled.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
disableDebugNotifications(): Promise<void> { return; }
/**
@@ -703,7 +703,7 @@ export class IBeacon {
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
* native layer has set the logging level accordingly.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
enableDebugLogs(): Promise<void> { return; }
/**
@@ -716,7 +716,7 @@ export class IBeacon {
* message received by the native layer for appending. The returned message
* is expected to be equivalent to the one provided in the original call.
*/
@Cordova({otherPromise: true})
@Cordova({ otherPromise: true })
appendToDeviceLog(message: string): Promise<void> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface ImagePickerOptions {
@@ -63,7 +63,7 @@ export interface ImagePickerOptions {
platforms: ['Android', 'iOS']
})
@Injectable()
export class ImagePicker {
export class ImagePicker extends IonicNativePlugin {
/**
* Pick pictures from the library.
* @param {ImagePickerOptions} options

View File

@@ -1,40 +1,40 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface ImageResizerOptions {
/**
* The URI for the image on the device to get scaled
*/
uri: string;
/**
* The URI for the image on the device to get scaled
*/
uri: string;
/**
* The width of the new image
*/
width: number;
/**
* The width of the new image
*/
width: number;
/**
* The height of the new image
*/
height: number;
/**
* The height of the new image
*/
height: number;
/**
* The name of the folder the image should be put
* (Android only)
*/
folderName?: string;
/**
* The name of the folder the image should be put
* (Android only)
*/
folderName?: string;
/**
*
* Quality given as Number for the quality of the new image
* (Android and iOS only)
*/
quality?: number;
/**
*
* Quality given as Number for the quality of the new image
* (Android and iOS only)
*/
quality?: number;
/**
* A custom name for the file. Default name is a timestamp
* (Android and Windows only)
*/
fileName?: string;
/**
* A custom name for the file. Default name is a timestamp
* (Android and Windows only)
*/
fileName?: string;
}
/**
@@ -80,7 +80,7 @@ export interface ImageResizerOptions {
platforms: ['Android', 'iOS', 'Windows']
})
@Injectable()
export class ImageResizer {
export class ImageResizer extends IonicNativePlugin {
/**
* @returns {Promise<any>}
*/

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, CordovaInstance } from '@ionic-native/core';
import { Plugin, CordovaInstance, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
@@ -71,6 +71,9 @@ export class InAppBrowserObject {
* Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.
* @param {string} url The URL to load.
* @param {string} [target="self"] The target in which to load the URL, an optional parameter that defaults to _self.
* _self: Opens in the WebView if the URL is in the white list, otherwise it opens in the InAppBrowser.
* _blank: Opens in the InAppBrowser.
* _system: Opens in the system's web browser.
* @param {string | InAppBrowserOptions} [options] Options for the InAppBrowser. Optional, defaulting to: location=yes.
* The options string must not contain any blank space, and each feature's
* name/value pairs must be separated by a comma. Feature names are case insensitive.
@@ -145,7 +148,7 @@ export class InAppBrowserObject {
* ...
*
*
* const browser = this.iab.create('https://ionic.io');
* const browser = this.iab.create('https://ionicframework.com/');
*
* browser.executeScript(...);
* browser.insertCSS(...);
@@ -166,7 +169,7 @@ export class InAppBrowserObject {
platforms: ['Amazon', 'Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'OS X', 'Ubuntu', 'Windows', 'Windows Phone']
})
@Injectable()
export class InAppBrowser {
export class InAppBrowser extends IonicNativePlugin {
/**
* Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
@@ -8,7 +8,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
* A lightweight Cordova plugin for in app purchases on iOS/Android.
*
* @usage
* ```ts
* ```typescript
* import { InAppPurchase } from '@ionic-native/in-app-purchase';
*
* constructor(private iap: InAppPurchase) { }
@@ -16,7 +16,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
* ...
*
* this.iap
* .getProducts(['com.yourapp.prod1', 'com.yourapp.prod2', ...])
* .getProducts(['prod1', 'prod2', ...])
* .then((products) => {
* console.log(products);
* // [{ productId: 'com.yourapp.prod1', 'title': '...', description: '...', price: '...' }, ...]
@@ -27,7 +27,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
*
*
* this.iap
* .buy('com.yourapp.prod1')
* .buy('prod1')
* .then((data)=> {
* console.log(data);
* // {
@@ -44,10 +44,10 @@ import { Plugin, Cordova } from '@ionic-native/core';
*
* @advanced
*
* ```ts
* ```typescript
* // fist buy the product...
* this.iap
* .buy('com.yourapp.consumable_prod1')
* .buy('consumable_prod1')
* .then(data => this.iap.consume(data.productType, data.receipt, data.signature))
* .then(() => console.log('product was successfully consumed!'))
* .catch( err=> console.log(err))
@@ -61,7 +61,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
repo: 'https://github.com/AlexDisler/cordova-plugin-inapppurchase'
})
@Injectable()
export class InAppPurchase {
export class InAppPurchase extends IonicNativePlugin {
/**
* Retrieves a list of full product data from Apple/Google. This method must be called before making purchases.
@@ -81,7 +81,7 @@ export class InAppPurchase {
@Cordova({
otherPromise: true
})
buy(productId: string): Promise<{transactionId: string, receipt: string, signature: string, productType: string}> { return; }
buy(productId: string): Promise<{ transactionId: string, receipt: string, signature: string, productType: string }> { return; }
/**
* Same as buy, but for subscription based products.
@@ -91,7 +91,7 @@ export class InAppPurchase {
@Cordova({
otherPromise: true
})
subscribe(productId: string): Promise<{transactionId: string, receipt: string, signature: string, productType: string}> { return; }
subscribe(productId: string): Promise<{ transactionId: string, receipt: string, signature: string, productType: string }> { return; }
/**
* Call this function after purchasing a "consumable" product to mark it as consumed. On Android, you must consume products that you want to let the user purchase multiple times. If you will not consume the product after a purchase, the next time you will attempt to purchase it you will get the error message:

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
@@ -37,7 +37,7 @@ import { Cordova, Plugin } from '@ionic-native/core';
platforms: ['Android', 'iOS', 'Windows Phone 8']
})
@Injectable()
export class Insomnia {
export class Insomnia extends IonicNativePlugin {
/**
* Keeps awake the application

View File

@@ -1,12 +1,12 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Instagram
* @description Share a photo with the instagram app
*
* @usage
* ```
* ```typescript
* import { Instagram } from '@ionic-native/instagram';
*
* constructor(private instagram: Instagram) { }
@@ -27,7 +27,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
platforms: ['Android', 'iOS']
})
@Injectable()
export class Instagram {
export class Instagram extends IonicNativePlugin {
/**
* Detect if the Instagram application is installed on the device.
@@ -37,7 +37,7 @@ export class Instagram {
@Cordova({
callbackStyle: 'node'
})
isInstalled(): Promise<boolean|string> { return; }
isInstalled(): Promise<boolean | string> { return; }
/**
* Share an image on Instagram

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
declare var window: any;
@@ -40,7 +40,7 @@ export interface IntelSecurityDataOptions {
* For more information please visit the [API documentation](https://software.intel.com/en-us/app-security-api/api).
*
* @usage
* ```
* ```typescript
* import { IntelSecurity } from '@ionic-native/intel-security';
* ...
* constructor(private intelSecurity: IntelSecurity) { }
@@ -75,7 +75,7 @@ export interface IntelSecurityDataOptions {
platforms: ['Android', 'iOS', 'Windows']
})
@Injectable()
export class IntelSecurity {
export class IntelSecurity extends IonicNativePlugin {
/**
* returns an IntelSecurityStorage object

View File

@@ -0,0 +1,158 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
/**
* @name Intercom
* @description
* This is a plugin that allows your Ionic app to use Intercom for iOS and/or Intercom for Android.
* Follow the offical documentation to setup this plugin correctly: https://developers.intercom.com/docs/cordova-phonegap-configuration
*
* @usage
* ```typescript
* import { Intercom } from '@ionic-native/intercom';
*
*
* constructor(private intercom: Intercom) { }
*
* ...
*
* this.intercom.registerUnidentifiedUser();
* ...
* this.intercom.registerForPush();
*
* ```
*/
@Plugin({
pluginName: 'Intercom',
plugin: 'cordova-plugin-intercom',
pluginRef: 'intercom',
repo: 'https://github.com/intercom/intercom-cordova',
platforms: ['Android', 'iOS'],
})
@Injectable()
export class Intercom extends IonicNativePlugin {
/**
* Register a identified user
* @param options {any} Options
* @return {Promise<any>} Returns a promise
*/
@Cordova()
registerIdentifiedUser(options: any): Promise<any> { return; }
/**
* Register a unidentified user
* @param options {any} Options
* @return {Promise<any>} Returns a promise
*/
@Cordova()
registerUnidentifiedUser(options: any): Promise<any> { return; }
/**
* This resets the Intercom integration's cache of your user's identity and wipes the slate clean.
* @return {Promise<any>} Returns a promise
*/
@Cordova()
reset(): Promise<any> { return; }
/**
*
* @param secureHash {string}
* @param secureData {any}
* @return {Promise<any>} Returns a promise
*/
@Cordova()
setSecureMode(secureHash: string, secureData: any): Promise<any> { return; }
/**
*
* @param secureHash {string}
* @return {Promise<any>} Returns a promise
*/
@Cordova()
setUserHash(secureHash: string): Promise<any> { return; }
/**
*
* @param attributes {any}
* @return {Promise<any>} Returns a promise
*/
@Cordova()
updateUser(attributes: any): Promise<any> { return; }
/**
*
* @param eventName {string}
* @param metaData {any}
* @return {Promise<any>} Returns a promise
*/
@Cordova()
logEvent(eventName: string, metaData: any): Promise<any> { return; }
/**
*
* @return {Promise<any>} Returns a promise
*/
@Cordova()
displayMessenger(): Promise<any> { return; }
/**
*
* @return {Promise<any>} Returns a promise
*/
@Cordova()
displayMessageComposer(): Promise<any> { return; }
/**
*
* @param initialMessage {string}
* @return {Promise<any>} Returns a promise
*/
@Cordova()
displayMessageComposerWithInitialMessage(initialMessage: string): Promise<any> { return; }
/**
*
* @return {Promise<any>} Returns a promise
*/
@Cordova()
displayConversationsList(): Promise<any> { return; }
/**
*
* @return {Promise<any>} Returns a promise
*/
@Cordova()
unreadConversationCount(): Promise<any> { return; }
/**
*
* @param visibility {string}
* @return {Promise<any>} Returns a promise
*/
@Cordova()
setLauncherVisibility(visibility: string): Promise<any> { return; }
/**
*
* @param visibility {string}
* @return {Promise<any>} Returns a promise
*/
@Cordova()
setInAppMessageVisibility(visibility: string): Promise<any> { return; }
/**
*
* @return {Promise<any>} Returns a promise
*/
@Cordova()
hideMessenger(): Promise<any> { return; }
/**
*
* @return {Promise<any>} Returns a promise
*/
@Cordova()
registerForPush(): Promise<any> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova } from '@ionic-native/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Is Debug
@@ -8,7 +8,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
* Debug mode is when the app is built and installed locally via xcode / eclipse / the cordova cli etc, compared to release mode when the app was downloaded from the app / play store via an end user.
*
* @usage
* ```
* ```typescript
* import { IsDebug } from '@ionic-native/is-debug';
*
* constructor(private isDebug: IsDebug) { }
@@ -29,7 +29,7 @@ import { Plugin, Cordova } from '@ionic-native/core';
platforms: ['Android', 'iOS']
})
@Injectable()
export class IsDebug {
export class IsDebug extends IonicNativePlugin {
/**
* Determine if an app was installed via xcode / eclipse / the ionic CLI etc

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, CordovaCheck } from '@ionic-native/core';
import { Plugin, Cordova, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
declare var cordova: any;
@@ -10,7 +10,7 @@ declare var cordova: any;
* Implementation of the JINS MEME SDK
*
* @usage
* ```
* ```typescript
* import { JinsMeme } from '@ionic-native/jins-meme';
*
* constructor(private jinsMeme: JinsMeme) { }
@@ -38,7 +38,7 @@ declare var cordova: any;
platforms: ['Android', 'iOS']
})
@Injectable()
export class JinsMeme {
export class JinsMeme extends IonicNativePlugin {
/**
* Authentication and authorization of App and SDK.
* Must call this method first.
@@ -75,11 +75,11 @@ export class JinsMeme {
observable: true
})
connect(target: string): Observable<any> {
return new Observable<any>((observer: any) => {
let data = cordova.plugins.JinsMemePlugin.connect(target, observer.next.bind(observer), observer.complete.bind(observer), observer.error.bind(observer));
return () => console.log(data);
});
}
return new Observable<any>((observer: any) => {
let data = cordova.plugins.JinsMemePlugin.connect(target, observer.next.bind(observer), observer.complete.bind(observer), observer.error.bind(observer));
return () => console.log(data);
});
}
/**
* Set auto connection mode.
*@param {Boolean} flag
@@ -109,10 +109,10 @@ export class JinsMeme {
clearWithArgs: true
})
startDataReport(): Observable<any> { return; }
/**
* Stops receiving data.
*@returns {Promise<any>}
*/
/**
* Stops receiving data.
*@returns {Promise<any>}
*/
@Cordova()
stopDataReport(): Promise<any> { return; }
/**

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
@@ -28,13 +28,13 @@ import { Observable } from 'rxjs/Observable';
platforms: ['Android', 'BlackBerry 10', 'iOS', 'Windows']
})
@Injectable()
export class Keyboard {
export class Keyboard extends IonicNativePlugin {
/**
* Hide the keyboard accessory bar with the next, previous and done buttons.
* @param hide {boolean}
*/
@Cordova({sync: true})
@Cordova({ sync: true })
hideKeyboardAccessoryBar(hide: boolean): void { }
/**

View File

@@ -0,0 +1,94 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name Keychain
* @description
* Get and set data in the iOS Keychain
*
* Requires Cordova plugin: `cordova-plugin-ios-keychain`. For more info, please see the [Keychain plugin docs](https://github.com/driftyco/cordova-plugin-ios-keychain).
*
* @usage
* ```typescript
* import { Keychain } from '@ionic-native/keychain';
*
* constructor(private keychain: Keychain) { }
*
* ...
*
* this.keychain.set(key, value).then(() => {
* this.keychain.get(key)
* .then(value => console.log('Got value', value))
* .catch(err => console.error('Error getting', err));
* })
* .catch(err => console.error('Error setting', err));
* ```
*/
@Plugin({
pluginName: 'Keychain',
plugin: 'cordova-plugin-ios-keychain',
pluginRef: 'window.Keychain',
repo: 'https://github.com/driftyco/cordova-plugin-ios-keychain/',
platforms: ['iOS']
})
@Injectable()
export class Keychain extends IonicNativePlugin {
/**
* Retrieves a value for a key
*
* @param {string} key the key to retrieve
* @param {string} [touchIDMessage] the message to show underneath the TouchID prompt (if any)
*/
@Cordova({
callbackOrder: 'reverse'
})
get(key: string, touchIDMessage?: string): Promise<any> { return; }
/**
* Sets a value for a key
*
* @param {string} key the key to set
* @param {string|number|boolean} value the value to set
* @param {boolean} [useTouchID] whether to store the value with security such that TouchID will be needed to grab it
*/
@Cordova({
callbackOrder: 'reverse'
})
set(key: string, value: string | number | boolean, useTouchID?: boolean): Promise<any> { return; }
/**
* Gets a JSON value for a key
*
* @param {string} key the key to retrieve
* @param {string} touchIDMessage the message to show underneath the TouchID prompt (if any)
*/
@Cordova({
callbackOrder: 'reverse'
})
getJson(key: string, touchIDMessage?: string): Promise<any> { return; }
/**
* Sets a JSON value for a key
*
* @param {string} key the key to set
* @param {any} obj value the value to set
* @param {boolean} [useTouchId] Wether to store the value with security such that TouchID will be needed to grab it
*/
@Cordova({
callbackOrder: 'reverse'
})
setJson(key: string, obj: any, useTouchId?: boolean): Promise<any> { return; }
/**
* Removes a value for a key
*
* @param {string} key the key to remove
*/
@Cordova({
callbackOrder: 'reverse'
})
remove(key: string): Promise<any> { return; }
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface LaunchNavigatorOptions {
@@ -95,7 +95,7 @@ export interface LaunchNavigatorOptions {
platforms: ['Android', 'iOS']
})
@Injectable()
export class LaunchNavigator {
export class LaunchNavigator extends IonicNativePlugin {
/**
* Launches navigator app

Some files were not shown because too many files have changed in this diff Show More