Compare commits

..

89 Commits

Author SHA1 Message Date
Ibby Hadeed
a3c46216f6 chore(): update changelog 2018-04-09 07:44:58 -04:00
Ibby Hadeed
1be1d5b577 4.7.0 2018-04-09 07:44:51 -04:00
Daniel Sogl
eb760a5136 Merge pull request #2441 from hahahannes/master
feat(plugin): Add google nearby plugin
2018-04-09 06:49:47 +02:00
Hannes
8f1854c180 refactor(GoogleNearby): add requested changes 2018-04-08 22:21:18 +02:00
Daniel
5d1c8c225b docs(ftp): fix jsdoc 2018-04-08 21:48:34 +02:00
Daniel
237ea0d90d docs(flurry-analytics): fix jsdoc 2018-04-08 21:47:25 +02:00
Daniel
bee3d639cb docs(firebase-analytics): fix jsdoc 2018-04-08 21:45:48 +02:00
Daniel
1cc7243ef9 docs(firebase): fix docs 2018-04-08 21:44:57 +02:00
Daniel
87f8505d93 docs(fingerprint-aio): typo 2018-04-08 21:39:33 +02:00
Daniel
7e0b9a488d docs(file-transfer): fix jsdoc 2018-04-08 21:33:19 +02:00
Daniel
3e9e578781 docs(file-path): fix jsdoc 2018-04-08 21:32:20 +02:00
Daniel
06094c2b53 docs(file-opener): typo 2018-04-08 21:31:06 +02:00
Daniel
d598bf3416 docs(file-encryption): typo 2018-04-08 21:30:20 +02:00
Daniel
624f94f9f6 docs(file): typo 2018-04-08 21:29:39 +02:00
Daniel
e70885ca2f docs(fcm): typo 2018-04-08 21:26:14 +02:00
Daniel
095a6c5cf7 docs(estimote-beacons): typos 2018-04-08 21:24:30 +02:00
Daniel
38e7e65557 docs(email-composer): fix jsdoc 2018-04-08 21:21:37 +02:00
Daniel
4ab4aaf178 docs(document-picker): fix docs 2018-04-08 21:20:35 +02:00
Daniel
fc9add88dc docs(dialogs): fix jsdoc 2018-04-08 21:05:44 +02:00
Daniel
9e744e7c29 docs(diagnostic): typo 2018-04-08 21:00:17 +02:00
Daniel
a235b2493f docs(device-orientation): fix jsodc 2018-04-08 20:51:53 +02:00
Daniel
48ccc4c24e docs(device-feedback): fix jsdoc 2018-04-08 20:50:25 +02:00
Daniel
18da591f03 docs(device-accounts): add missing docs 2018-04-08 20:49:46 +02:00
Daniel
bca7f38bbf docs(crop): add missing docs 2018-04-08 20:48:14 +02:00
Daniel
7f24f89fc4 docs(contacts): fix jsdoc 2018-04-08 20:47:18 +02:00
Daniel
62241105c8 docs(card-io): fix jsdoc 2018-04-08 20:44:06 +02:00
Daniel Sogl
1e8626c435 chore(travis): fix lint 2018-04-08 19:52:33 +02:00
Daniel
7520a96cc6 docs(camera-preview): fix typos 2018-04-08 19:32:19 +02:00
Daniel
0af33923a8 BREAKING CHANGE: Removed Google Maps Plugin
Use this repository instead: https://github.com/ionic-team/ionic-native-google-maps
2018-04-08 19:30:04 +02:00
Daniel
9b83615af6 docs(call-number): fix jsdoc 2018-04-08 19:28:24 +02:00
Daniel
7f274ba9a3 docs(call-log): fix jsdoc 2018-04-08 19:27:40 +02:00
Daniel
1e539f8cd9 docs(calendar): typos 2018-04-08 19:20:20 +02:00
Daniel
87ba4b4d32 docs(browser-tab): improve example 2018-04-08 19:18:36 +02:00
Daniel
7ed6ab894b docs(broadcaster): fix jsdocs 2018-04-08 19:17:17 +02:00
Daniel
e095eecf5b docs(brightness): add missing doc 2018-04-08 19:12:38 +02:00
Daniel
502203936c docs(braintree): typo 2018-04-08 19:11:52 +02:00
Daniel
7cbe7a6287 docs(ble): add missing documentations 2018-04-08 19:09:43 +02:00
Daniel
376d16904c docs(battery-status): typo 2018-04-08 19:06:48 +02:00
Daniel
7a6b8ac917 docs(barcode-scanner): fix wrong jsdocs 2018-04-08 19:05:45 +02:00
Daniel
64cbb6181a docs(background-mode): add missing return types 2018-04-08 19:04:37 +02:00
Daniel
c26735f366 docs(apple-pay): typos 2018-04-08 19:00:09 +02:00
Daniel
2e07a7c04e docs(app-update): add missing param 2018-04-08 18:56:49 +02:00
Daniel
3bfc95ed78 refactor(app-center-push): rename variable 2018-04-08 18:52:49 +02:00
Daniel
4be721b8f5 refactor(core): beautify files and reorder imports 2018-04-08 18:48:55 +02:00
Daniel
15c73e46d0 docs(android-permissions): fix wrong jsdocs 2018-04-08 18:47:50 +02:00
Daniel
dd4d35d9e0 docs(android-fingerprint-auth): add missing interfaces 2018-04-08 18:46:21 +02:00
Daniel
d8f030b67d docs(android-exoplayer): fix typo and jsdocs 2018-04-08 18:39:07 +02:00
Daniel
3f82cfa527 docs(code-push): fix wrong jsdocs 2018-04-08 18:37:34 +02:00
Daniel
348dbb85b3 docs(alipay): fix wrong jsdoc 2018-04-08 18:28:52 +02:00
Daniel
2fda70a3c6 docs(admob-pro): fix wrong jsdocs 2018-04-08 18:27:59 +02:00
Daniel
5648bfc70f docs(action-sheet): add missing param interface 2018-04-08 18:26:01 +02:00
Daniel
1c03c3ff3c docs(admob-free): add missing documentation 2018-04-08 18:24:41 +02:00
Daniel
31c696d59d docs(action-sheet): fix wrong jsdocs 2018-04-08 18:22:48 +02:00
Hannes
eb1bcdd078 feat(plugin): Add google nearby plugin 2018-04-07 14:47:33 +02:00
Daniel Sogl
f7b5e2f15f docs(uptime): add iOS support
docs(uptime): add iOS support
2018-04-07 11:06:03 +02:00
Daniel Sogl
2628798064 docs(uptime): remove unneeded lines of code 2018-04-07 11:01:53 +02:00
Daniel Sogl
b3082bf5ac refactor(uptime): beautify 2018-04-07 11:00:19 +02:00
Silviu Bogdan Stroe
e6f6158b43 feat(uptime): add iOS support 2018-04-07 11:49:53 +03:00
Daniel
548860b1ff Merge remote-tracking branch 'origin/master' 2018-04-06 23:14:28 +02:00
Daniel
9aff5eaa13 fix(speech-recognition): add missing options
fix:  #2165
2018-04-06 23:14:11 +02:00
Daniel
67cf61d2a8 fear(speech-recognition): add missing options
fix:  #2165
2018-04-06 23:05:07 +02:00
Daniel
707ca8ea3c docs(qr-scanner): improve example
fix: #1876
2018-04-06 22:57:43 +02:00
Daniel
4cb28c41c8 feat(social-sharing): add missing function
fix: #2209
2018-04-06 22:54:11 +02:00
Daniel
e828100a40 refactor(sms): reorder imports 2018-04-06 22:48:42 +02:00
Daniel
439960092e fix(email-composer): add missing options
#175
2018-04-06 22:38:59 +02:00
Daniel
a81a4d3edf fix(uuid): add correct plugin source
fix: #2324
2018-04-06 22:34:06 +02:00
Daniel
859cbfcfc6 fix(image-resizer): add missing option 2018-04-06 22:30:25 +02:00
Daniel Sogl
4b4eb76352 feat(plugin): add Uptime plugin
feat(plugin): add Uptime plugin
2018-04-06 16:34:35 +02:00
Daniel Sogl
bc7bdc60b7 refactor(uptime): beautify 2018-04-06 16:33:00 +02:00
Silviu Bogdan Stroe
35ad7f6387 style(uptime): remove the unneeded comments
perf(uptime): add promise return type
2018-04-06 16:11:55 +03:00
Daniel Sogl
399055b963 docs(camera): fix small typo
docs(camera): fix small typo
2018-04-05 22:03:51 +02:00
Benjamin Morel
3a286b0243 Fix typo 2018-04-05 11:34:50 +02:00
Daniel Sogl
830b0e0ef9 feat(plugin): add Microsoft App Center Push plugin
feat(plugin): add Microsoft App Center Push plugin
2018-04-04 18:58:32 +02:00
Daniel
cdabebd487 feat(plugin): add Microsoft App Center Push plugin 2018-04-04 18:56:38 +02:00
Daniel Sogl
a38381d06c feat(plugin): add Microsoft App Center Analytics plugin
feat(plugin): add Microsoft App Center Analytics plugin
2018-04-04 18:34:37 +02:00
Daniel
44e0e2483a feat(plugin): add Microsoft App Center Crashes plugin 2018-04-04 18:25:34 +02:00
Daniel
a1ad658d05 Merge remote-tracking branch 'origin/master' into app-center-crashes 2018-04-04 18:07:31 +02:00
Daniel Sogl
7362a41b55 feat(plugin): add Microsoft App Center Analytics plugin
feat(plugin): add Microsoft App Center Analytics plugin
2018-04-04 18:06:58 +02:00
Daniel Sogl
b65946b1a8 feat(plugin): add Microdoft App Center Analytics plugin 2018-04-04 17:42:30 +02:00
Daniel
7a5bee914f feat(plugin): add Microdoft App Center Analytics plugin 2018-04-04 17:28:29 +02:00
Daniel
84c9bfbca3 feat(plugin): add Microdoft App Center Analytics plugin 2018-04-04 17:24:29 +02:00
Silviu Bogdan Stroe
6be38328b0 feat(plugin): add Uptime plugin 2018-04-04 16:53:19 +03:00
Daniel Sogl
e27009e7b5 docs(autostart): add correct plugin description
docs(autostart): add correct plugin description
2018-04-04 10:56:06 +02:00
Daniel Sogl
fa1cb407dd fix(file-picker): use correct plugin ref
fix(file-picker): use correct plugin ref
2018-04-04 10:54:30 +02:00
Hanut Singh
6314c28aa8 Fixed the description text 2018-04-04 14:06:16 +05:30
Mark
7f55a8f963 Use Correct Plugin Ref 2018-04-04 14:17:47 +09:30
Daniel Sogl
25f158629d fix(card-io): Fix typo in the "suppressManual" property name
fix(card-io): Fix typo in the "suppressManual" property name.
2018-04-02 13:57:26 +02:00
Said A
5c81ff4875 Fix typo in the "suppressManual" property name. 2018-03-31 11:24:10 +05:00
Daniel Sogl
f33eaed266 docs(launch-review): fix example 2018-03-30 20:02:11 +02:00
70 changed files with 3518 additions and 4759 deletions

View File

@@ -1,5 +1,5 @@
<a name="4.6.0"></a>
# [4.6.0](https://github.com/ionic-team/ionic-native/compare/v5.0.0-beta.3...v4.6.0) (2018-03-19)
<a name="4.7.0"></a>
# [4.7.0](https://github.com/ionic-team/ionic-native/compare/v4.6.0...v4.7.0) (2018-04-09)
### Bug Fixes
@@ -8,19 +8,25 @@
* **call-log:** comments erratum ([4b9cf17](https://github.com/ionic-team/ionic-native/commit/4b9cf17))
* **call-log:** update getCallLog signature ([61c0ecf](https://github.com/ionic-team/ionic-native/commit/61c0ecf))
* **contacts:** refactor wrong ContactFieldTypes ([f607a03](https://github.com/ionic-team/ionic-native/commit/f607a03))
* **email-composer:** add missing options ([4399600](https://github.com/ionic-team/ionic-native/commit/4399600))
* **facebook:** remove browserInit function ([f718432](https://github.com/ionic-team/ionic-native/commit/f718432))
* **firebase-analytics:** add `sync` option for all methods ([42fd1f2](https://github.com/ionic-team/ionic-native/commit/42fd1f2))
* **google-maps:** wrong decorators ([e5b9d53](https://github.com/ionic-team/ionic-native/commit/e5b9d53))
* **health-kit:** add missing properties to HealthKitOptions ([f8e79ce](https://github.com/ionic-team/ionic-native/commit/f8e79ce))
* **image-resizer:** add missing option ([859cbfc](https://github.com/ionic-team/ionic-native/commit/859cbfc))
* **index-app-content:** remove onItemPressed function ([270678f](https://github.com/ionic-team/ionic-native/commit/270678f))
* **local-notifications:** fixed linting errors ([8a26377](https://github.com/ionic-team/ionic-native/commit/8a26377))
* **printer:** add correct npm repository ([4bf55d3](https://github.com/ionic-team/ionic-native/commit/4bf55d3))
* **pro:** proper callback type and guard for plugin instantiate. [#2136](https://github.com/ionic-team/ionic-native/issues/2136) [#2127](https://github.com/ionic-team/ionic-native/issues/2127) ([61293c3](https://github.com/ionic-team/ionic-native/commit/61293c3))
* **pro:** Tweak to pro plugin. [#2136](https://github.com/ionic-team/ionic-native/issues/2136) [#2127](https://github.com/ionic-team/ionic-native/issues/2127) ([c8ecee0](https://github.com/ionic-team/ionic-native/commit/c8ecee0))
* **Pro:** CordovaCheck should sync. [#2136](https://github.com/ionic-team/ionic-native/issues/2136) [#2127](https://github.com/ionic-team/ionic-native/issues/2127) ([f419db5](https://github.com/ionic-team/ionic-native/commit/f419db5))
* **push:** Android senderID as optional ([1b237aa](https://github.com/ionic-team/ionic-native/commit/1b237aa))
* **Radmob-pro:** add offsetTopBar option ([4948640](https://github.com/ionic-team/ionic-native/commit/4948640))
* **speech-recognition:** add missing options ([9aff5ea](https://github.com/ionic-team/ionic-native/commit/9aff5ea))
* **sqlite:** remove trailing whitespaces ([7547a94](https://github.com/ionic-team/ionic-native/commit/7547a94))
* **uuid:** add correct plugin source ([a81a4d3](https://github.com/ionic-team/ionic-native/commit/a81a4d3))
* **web-intent:** allow extras ([8dc5ad2](https://github.com/ionic-team/ionic-native/commit/8dc5ad2))
* **web-intent:** rename `onNewIntent` to `onIntent` ([dbcb103](https://github.com/ionic-team/ionic-native/commit/dbcb103))
### Features
@@ -31,20 +37,35 @@
* **base64-to-gallery:** add options interface ([11d516f](https://github.com/ionic-team/ionic-native/commit/11d516f))
* **ble:** add scan options interface ([e345fed](https://github.com/ionic-team/ionic-native/commit/e345fed))
* **calendar:** add getCreateCalendarOptions function ([13765d2](https://github.com/ionic-team/ionic-native/commit/13765d2))
* **call-log:** add operator 'like' and array of values ([84cecf7](https://github.com/ionic-team/ionic-native/commit/84cecf7))
* **call-log:** add plugin ([76a644d](https://github.com/ionic-team/ionic-native/commit/76a644d))
* **camera-preview:** add onBackButton function ([a345e2c](https://github.com/ionic-team/ionic-native/commit/a345e2c))
* **camera-preview:** disable exif stripping conf ([e231bf8](https://github.com/ionic-team/ionic-native/commit/e231bf8))
* **device-accounts:** add android account interface ([d2261b6](https://github.com/ionic-team/ionic-native/commit/d2261b6))
* **device-feedback:** add feedback interface ([7cafebd](https://github.com/ionic-team/ionic-native/commit/7cafebd))
* **google-analytics:** add missing functions ([ff0008e](https://github.com/ionic-team/ionic-native/commit/ff0008e))
* **google-maps:** update to match latest plugin version ([#2320](https://github.com/ionic-team/ionic-native/issues/2320)) ([f11be24](https://github.com/ionic-team/ionic-native/commit/f11be24))
* **hot code push:** add cordova-hot-code-push ([e7968da](https://github.com/ionic-team/ionic-native/commit/e7968da))
* **hot code push:** add update events ([04bdade](https://github.com/ionic-team/ionic-native/commit/04bdade))
* **http:** add support for new methods ([#2249](https://github.com/ionic-team/ionic-native/issues/2249)) ([4497e00](https://github.com/ionic-team/ionic-native/commit/4497e00))
* **http:** add support for new properties ([#2135](https://github.com/ionic-team/ionic-native/issues/2135)) ([c2a62cd](https://github.com/ionic-team/ionic-native/commit/c2a62cd))
* **jins-meme:** enable background mode data collection ([1932f2d](https://github.com/ionic-team/ionic-native/commit/1932f2d))
* **local-notifications:** added a new param to specify if the notification will be silent ([6e58192](https://github.com/ionic-team/ionic-native/commit/6e58192))
* **local-notifications:** Support version 0.9.0-beta.3 of cordova-plugin-local-notifications ([e5034bf](https://github.com/ionic-team/ionic-native/commit/e5034bf))
* **one-signal:** add clearOneSignalNotifications function ([fc0338a](https://github.com/ionic-team/ionic-native/commit/fc0338a))
* **plugin:** Add google nearby plugin ([eb1bcdd](https://github.com/ionic-team/ionic-native/commit/eb1bcdd))
* **plugin:** add iOS File Picker ([571df3a](https://github.com/ionic-team/ionic-native/commit/571df3a))
* **plugin:** add Microdoft App Center Analytics plugin ([7a5bee9](https://github.com/ionic-team/ionic-native/commit/7a5bee9))
* **plugin:** add Microdoft App Center Analytics plugin ([84c9bfb](https://github.com/ionic-team/ionic-native/commit/84c9bfb))
* **plugin:** add Microdoft App Center Analytics plugin ([b65946b](https://github.com/ionic-team/ionic-native/commit/b65946b))
* **plugin:** add Microsoft App Center Crashes plugin ([44e0e24](https://github.com/ionic-team/ionic-native/commit/44e0e24))
* **plugin:** add Microsoft App Center Push plugin ([cdabebd](https://github.com/ionic-team/ionic-native/commit/cdabebd))
* **plugin:** add OpenALPR plugin ([e27fbf4](https://github.com/ionic-team/ionic-native/commit/e27fbf4))
* **plugin:** add Uptime plugin ([6be3832](https://github.com/ionic-team/ionic-native/commit/6be3832))
* **social-sharing:** add missing function ([4cb28c4](https://github.com/ionic-team/ionic-native/commit/4cb28c4))
* **speechkit:** plugin implementation ([41e5a0f](https://github.com/ionic-team/ionic-native/commit/41e5a0f))
* **sqlite:** add selfTest function ([241f073](https://github.com/ionic-team/ionic-native/commit/241f073))
* **uptime:** add iOS support ([e6f6158](https://github.com/ionic-team/ionic-native/commit/e6f6158))
* **web-intent:** add startService function ([15bb350](https://github.com/ionic-team/ionic-native/commit/15bb350))

914
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "ionic-native",
"version": "4.6.0",
"version": "4.7.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -1215,6 +1215,7 @@
"requires": {
"anymatch": "1.3.2",
"async-each": "1.0.1",
"fsevents": "1.1.3",
"glob-parent": "2.0.0",
"inherits": "2.0.3",
"is-binary-path": "1.0.1",
@@ -2722,6 +2723,910 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
"fsevents": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
"integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
"dev": true,
"optional": true,
"requires": {
"nan": "2.10.0",
"node-pre-gyp": "0.6.39"
},
"dependencies": {
"abbrev": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
},
"ajv": {
"version": "4.11.8",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"co": "4.6.0",
"json-stable-stringify": "1.0.1"
}
},
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true
},
"aproba": {
"version": "1.1.1",
"bundled": true,
"dev": true,
"optional": true
},
"are-we-there-yet": {
"version": "1.1.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"delegates": "1.0.0",
"readable-stream": "2.2.9"
}
},
"asn1": {
"version": "0.2.3",
"bundled": true,
"dev": true,
"optional": true
},
"assert-plus": {
"version": "0.2.0",
"bundled": true,
"dev": true,
"optional": true
},
"asynckit": {
"version": "0.4.0",
"bundled": true,
"dev": true,
"optional": true
},
"aws-sign2": {
"version": "0.6.0",
"bundled": true,
"dev": true,
"optional": true
},
"aws4": {
"version": "1.6.0",
"bundled": true,
"dev": true,
"optional": true
},
"balanced-match": {
"version": "0.4.2",
"bundled": true,
"dev": true
},
"bcrypt-pbkdf": {
"version": "1.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"tweetnacl": "0.14.5"
}
},
"block-stream": {
"version": "0.0.9",
"bundled": true,
"dev": true,
"requires": {
"inherits": "2.0.3"
}
},
"boom": {
"version": "2.10.1",
"bundled": true,
"dev": true,
"requires": {
"hoek": "2.16.3"
}
},
"brace-expansion": {
"version": "1.1.7",
"bundled": true,
"dev": true,
"requires": {
"balanced-match": "0.4.2",
"concat-map": "0.0.1"
}
},
"buffer-shims": {
"version": "1.0.0",
"bundled": true,
"dev": true
},
"caseless": {
"version": "0.12.0",
"bundled": true,
"dev": true,
"optional": true
},
"co": {
"version": "4.6.0",
"bundled": true,
"dev": true,
"optional": true
},
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true
},
"combined-stream": {
"version": "1.0.5",
"bundled": true,
"dev": true,
"requires": {
"delayed-stream": "1.0.0"
}
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true
},
"core-util-is": {
"version": "1.0.2",
"bundled": true,
"dev": true
},
"cryptiles": {
"version": "2.0.5",
"bundled": true,
"dev": true,
"requires": {
"boom": "2.10.1"
}
},
"dashdash": {
"version": "1.14.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
}
}
},
"debug": {
"version": "2.6.8",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ms": "2.0.0"
}
},
"deep-extend": {
"version": "0.4.2",
"bundled": true,
"dev": true,
"optional": true
},
"delayed-stream": {
"version": "1.0.0",
"bundled": true,
"dev": true
},
"delegates": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
},
"detect-libc": {
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true
},
"ecc-jsbn": {
"version": "0.1.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"jsbn": "0.1.1"
}
},
"extend": {
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true
},
"extsprintf": {
"version": "1.0.2",
"bundled": true,
"dev": true
},
"forever-agent": {
"version": "0.6.1",
"bundled": true,
"dev": true,
"optional": true
},
"form-data": {
"version": "2.1.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"asynckit": "0.4.0",
"combined-stream": "1.0.5",
"mime-types": "2.1.15"
}
},
"fs.realpath": {
"version": "1.0.0",
"bundled": true,
"dev": true
},
"fstream": {
"version": "1.0.11",
"bundled": true,
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
"inherits": "2.0.3",
"mkdirp": "0.5.1",
"rimraf": "2.6.1"
}
},
"fstream-ignore": {
"version": "1.0.5",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"fstream": "1.0.11",
"inherits": "2.0.3",
"minimatch": "3.0.4"
}
},
"gauge": {
"version": "2.7.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"aproba": "1.1.1",
"console-control-strings": "1.1.0",
"has-unicode": "2.0.1",
"object-assign": "4.1.1",
"signal-exit": "3.0.2",
"string-width": "1.0.2",
"strip-ansi": "3.0.1",
"wide-align": "1.1.2"
}
},
"getpass": {
"version": "0.1.7",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
}
}
},
"glob": {
"version": "7.1.2",
"bundled": true,
"dev": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"graceful-fs": {
"version": "4.1.11",
"bundled": true,
"dev": true
},
"har-schema": {
"version": "1.0.5",
"bundled": true,
"dev": true,
"optional": true
},
"har-validator": {
"version": "4.2.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ajv": "4.11.8",
"har-schema": "1.0.5"
}
},
"has-unicode": {
"version": "2.0.1",
"bundled": true,
"dev": true,
"optional": true
},
"hawk": {
"version": "3.1.3",
"bundled": true,
"dev": true,
"requires": {
"boom": "2.10.1",
"cryptiles": "2.0.5",
"hoek": "2.16.3",
"sntp": "1.0.9"
}
},
"hoek": {
"version": "2.16.3",
"bundled": true,
"dev": true
},
"http-signature": {
"version": "1.1.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"assert-plus": "0.2.0",
"jsprim": "1.4.0",
"sshpk": "1.13.0"
}
},
"inflight": {
"version": "1.0.6",
"bundled": true,
"dev": true,
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true
},
"ini": {
"version": "1.3.4",
"bundled": true,
"dev": true,
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"requires": {
"number-is-nan": "1.0.1"
}
},
"is-typedarray": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
},
"isarray": {
"version": "1.0.0",
"bundled": true,
"dev": true
},
"isstream": {
"version": "0.1.2",
"bundled": true,
"dev": true,
"optional": true
},
"jodid25519": {
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"jsbn": "0.1.1"
}
},
"jsbn": {
"version": "0.1.1",
"bundled": true,
"dev": true,
"optional": true
},
"json-schema": {
"version": "0.2.3",
"bundled": true,
"dev": true,
"optional": true
},
"json-stable-stringify": {
"version": "1.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"jsonify": "0.0.0"
}
},
"json-stringify-safe": {
"version": "5.0.1",
"bundled": true,
"dev": true,
"optional": true
},
"jsonify": {
"version": "0.0.0",
"bundled": true,
"dev": true,
"optional": true
},
"jsprim": {
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.0.2",
"json-schema": "0.2.3",
"verror": "1.3.6"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
}
}
},
"mime-db": {
"version": "1.27.0",
"bundled": true,
"dev": true
},
"mime-types": {
"version": "2.1.15",
"bundled": true,
"dev": true,
"requires": {
"mime-db": "1.27.0"
}
},
"minimatch": {
"version": "3.0.4",
"bundled": true,
"dev": true,
"requires": {
"brace-expansion": "1.1.7"
}
},
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true
},
"mkdirp": {
"version": "0.5.1",
"bundled": true,
"dev": true,
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
"version": "2.0.0",
"bundled": true,
"dev": true,
"optional": true
},
"node-pre-gyp": {
"version": "0.6.39",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"detect-libc": "1.0.2",
"hawk": "3.1.3",
"mkdirp": "0.5.1",
"nopt": "4.0.1",
"npmlog": "4.1.0",
"rc": "1.2.1",
"request": "2.81.0",
"rimraf": "2.6.1",
"semver": "5.3.0",
"tar": "2.2.1",
"tar-pack": "3.4.0"
}
},
"nopt": {
"version": "4.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"abbrev": "1.1.0",
"osenv": "0.1.4"
}
},
"npmlog": {
"version": "4.1.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"are-we-there-yet": "1.1.4",
"console-control-strings": "1.1.0",
"gauge": "2.7.4",
"set-blocking": "2.0.0"
}
},
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true
},
"oauth-sign": {
"version": "0.8.2",
"bundled": true,
"dev": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
"bundled": true,
"dev": true,
"optional": true
},
"once": {
"version": "1.4.0",
"bundled": true,
"dev": true,
"requires": {
"wrappy": "1.0.2"
}
},
"os-homedir": {
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true
},
"os-tmpdir": {
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true
},
"osenv": {
"version": "0.1.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"os-homedir": "1.0.2",
"os-tmpdir": "1.0.2"
}
},
"path-is-absolute": {
"version": "1.0.1",
"bundled": true,
"dev": true
},
"performance-now": {
"version": "0.2.0",
"bundled": true,
"dev": true,
"optional": true
},
"process-nextick-args": {
"version": "1.0.7",
"bundled": true,
"dev": true
},
"punycode": {
"version": "1.4.1",
"bundled": true,
"dev": true,
"optional": true
},
"qs": {
"version": "6.4.0",
"bundled": true,
"dev": true,
"optional": true
},
"rc": {
"version": "1.2.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"deep-extend": "0.4.2",
"ini": "1.3.4",
"minimist": "1.2.0",
"strip-json-comments": "2.0.1"
},
"dependencies": {
"minimist": {
"version": "1.2.0",
"bundled": true,
"dev": true,
"optional": true
}
}
},
"readable-stream": {
"version": "2.2.9",
"bundled": true,
"dev": true,
"requires": {
"buffer-shims": "1.0.0",
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "1.0.0",
"process-nextick-args": "1.0.7",
"string_decoder": "1.0.1",
"util-deprecate": "1.0.2"
}
},
"request": {
"version": "2.81.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"aws-sign2": "0.6.0",
"aws4": "1.6.0",
"caseless": "0.12.0",
"combined-stream": "1.0.5",
"extend": "3.0.1",
"forever-agent": "0.6.1",
"form-data": "2.1.4",
"har-validator": "4.2.1",
"hawk": "3.1.3",
"http-signature": "1.1.1",
"is-typedarray": "1.0.0",
"isstream": "0.1.2",
"json-stringify-safe": "5.0.1",
"mime-types": "2.1.15",
"oauth-sign": "0.8.2",
"performance-now": "0.2.0",
"qs": "6.4.0",
"safe-buffer": "5.0.1",
"stringstream": "0.0.5",
"tough-cookie": "2.3.2",
"tunnel-agent": "0.6.0",
"uuid": "3.0.1"
}
},
"rimraf": {
"version": "2.6.1",
"bundled": true,
"dev": true,
"requires": {
"glob": "7.1.2"
}
},
"safe-buffer": {
"version": "5.0.1",
"bundled": true,
"dev": true
},
"semver": {
"version": "5.3.0",
"bundled": true,
"dev": true,
"optional": true
},
"set-blocking": {
"version": "2.0.0",
"bundled": true,
"dev": true,
"optional": true
},
"signal-exit": {
"version": "3.0.2",
"bundled": true,
"dev": true,
"optional": true
},
"sntp": {
"version": "1.0.9",
"bundled": true,
"dev": true,
"requires": {
"hoek": "2.16.3"
}
},
"sshpk": {
"version": "1.13.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"asn1": "0.2.3",
"assert-plus": "1.0.0",
"bcrypt-pbkdf": "1.0.1",
"dashdash": "1.14.1",
"ecc-jsbn": "0.1.1",
"getpass": "0.1.7",
"jodid25519": "1.0.2",
"jsbn": "0.1.1",
"tweetnacl": "0.14.5"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
}
}
},
"string-width": {
"version": "1.0.2",
"bundled": true,
"dev": true,
"requires": {
"code-point-at": "1.1.0",
"is-fullwidth-code-point": "1.0.0",
"strip-ansi": "3.0.1"
}
},
"string_decoder": {
"version": "1.0.1",
"bundled": true,
"dev": true,
"requires": {
"safe-buffer": "5.0.1"
}
},
"stringstream": {
"version": "0.0.5",
"bundled": true,
"dev": true,
"optional": true
},
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
"dev": true,
"requires": {
"ansi-regex": "2.1.1"
}
},
"strip-json-comments": {
"version": "2.0.1",
"bundled": true,
"dev": true,
"optional": true
},
"tar": {
"version": "2.2.1",
"bundled": true,
"dev": true,
"requires": {
"block-stream": "0.0.9",
"fstream": "1.0.11",
"inherits": "2.0.3"
}
},
"tar-pack": {
"version": "3.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"debug": "2.6.8",
"fstream": "1.0.11",
"fstream-ignore": "1.0.5",
"once": "1.4.0",
"readable-stream": "2.2.9",
"rimraf": "2.6.1",
"tar": "2.2.1",
"uid-number": "0.0.6"
}
},
"tough-cookie": {
"version": "2.3.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"punycode": "1.4.1"
}
},
"tunnel-agent": {
"version": "0.6.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "5.0.1"
}
},
"tweetnacl": {
"version": "0.14.5",
"bundled": true,
"dev": true,
"optional": true
},
"uid-number": {
"version": "0.0.6",
"bundled": true,
"dev": true,
"optional": true
},
"util-deprecate": {
"version": "1.0.2",
"bundled": true,
"dev": true
},
"uuid": {
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true
},
"verror": {
"version": "1.3.6",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"extsprintf": "1.0.2"
}
},
"wide-align": {
"version": "1.1.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"string-width": "1.0.2"
}
},
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true
}
}
},
"gaze": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
@@ -4657,6 +5562,13 @@
"duplexer2": "0.0.2"
}
},
"nan": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
"integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
"dev": true,
"optional": true
},
"natives": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "ionic-native",
"version": "4.6.0",
"version": "4.7.0",
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
"homepage": "https://ionicframework.com/",
"author": "Ionic Team <hi@ionic.io> (https://ionic.io)",

View File

@@ -9,13 +9,17 @@ export function checkReady() {
let didFireReady = false;
document.addEventListener('deviceready', () => {
console.log(`Ionic Native: deviceready event fired after ${(Date.now() - before)} ms`);
console.log(
`Ionic Native: deviceready event fired after ${Date.now() - before} ms`
);
didFireReady = true;
});
setTimeout(() => {
if (!didFireReady && !!window.cordova) {
console.warn(`Ionic Native: deviceready did not fire within ${DEVICE_READY_TIMEOUT}ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.`);
console.warn(
`Ionic Native: deviceready did not fire within ${DEVICE_READY_TIMEOUT}ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.`
);
}
}, DEVICE_READY_TIMEOUT);
}

View File

@@ -1,24 +1,34 @@
import 'core-js';
import { Plugin, Cordova, CordovaProperty, CordovaCheck, CordovaInstance, InstanceProperty } from './decorators';
import { Observable } from 'rxjs/Observable';
import {
Cordova,
CordovaCheck,
CordovaInstance,
CordovaProperty,
InstanceProperty,
Plugin
} from './decorators';
import { IonicNativePlugin } from './ionic-native-plugin';
import { ERR_CORDOVA_NOT_AVAILABLE, ERR_PLUGIN_NOT_INSTALLED } from './plugin';
import { Observable } from 'rxjs/Observable';
declare const window: any;
class TestObject {
constructor(public _objectInstance: any) {}
@InstanceProperty
name: string;
@InstanceProperty name: string;
@CordovaInstance({ sync: true })
pingSync(): string { return; }
pingSync(): string {
return;
}
@CordovaInstance()
ping(): Promise<any> { return; }
ping(): Promise<any> {
return;
}
}
@Plugin({
@@ -29,15 +39,17 @@ class TestObject {
platforms: ['Android', 'iOS']
})
class TestPlugin extends IonicNativePlugin {
@CordovaProperty
name: string;
@CordovaProperty name: string;
@Cordova({ sync: true })
pingSync(): string { return; }
pingSync(): string {
return;
}
@Cordova()
ping(): Promise<string> { return; }
ping(): Promise<string> {
return;
}
@CordovaCheck()
customPing(): Promise<string> {
@@ -51,14 +63,17 @@ class TestPlugin extends IonicNativePlugin {
@Cordova({
destruct: true
})
destructPromise(): Promise<any> { return; }
destructPromise(): Promise<any> {
return;
}
@Cordova({
destruct: true,
observable: true
})
destructObservable(): Observable<any> { return; }
destructObservable(): Observable<any> {
return;
}
}
function definePlugin() {
@@ -78,7 +93,6 @@ function definePlugin() {
}
describe('Regular Decorators', () => {
let plugin: TestPlugin;
beforeEach(() => {
@@ -87,7 +101,6 @@ describe('Regular Decorators', () => {
});
describe('Plugin', () => {
it('should set pluginName', () => {
expect(TestPlugin.getPluginName()).toEqual('TestPlugin');
});
@@ -103,17 +116,16 @@ describe('Regular Decorators', () => {
it('should return supported platforms', () => {
expect(TestPlugin.getSupportedPlatforms()).toEqual(['Android', 'iOS']);
});
});
describe('Cordova', () => {
it('should do a sync function', () => {
expect(plugin.pingSync()).toEqual('pong');
});
it('should do an async function', (done: Function) => {
plugin.ping()
plugin
.ping()
.then(res => {
expect(res).toEqual('pong');
done();
@@ -125,39 +137,31 @@ describe('Regular Decorators', () => {
});
it('should throw plugin_not_installed error', (done: Function) => {
delete window.testPlugin;
window.cordova = true;
expect(<any>plugin.pingSync()).toEqual(ERR_PLUGIN_NOT_INSTALLED);
plugin.ping()
.catch(e => {
expect(e).toEqual(ERR_PLUGIN_NOT_INSTALLED.error);
delete window.cordova;
done();
});
plugin.ping().catch(e => {
expect(e).toEqual(ERR_PLUGIN_NOT_INSTALLED.error);
delete window.cordova;
done();
});
});
it('should throw cordova_not_available error', (done: Function) => {
delete window.testPlugin;
expect(<any>plugin.pingSync()).toEqual(ERR_CORDOVA_NOT_AVAILABLE);
plugin.ping()
.catch(e => {
expect(e).toEqual(ERR_CORDOVA_NOT_AVAILABLE.error);
done();
});
plugin.ping().catch(e => {
expect(e).toEqual(ERR_CORDOVA_NOT_AVAILABLE.error);
done();
});
});
});
describe('CordovaProperty', () => {
it('should return property value', () => {
expect(plugin.name).toEqual('John Smith');
});
@@ -166,61 +170,47 @@ describe('Regular Decorators', () => {
plugin.name = 'value2';
expect(plugin.name).toEqual('value2');
});
});
describe('CordovaCheck', () => {
it('should run the method when plugin exists', (done) => {
plugin.customPing()
.then(res => {
expect(res).toEqual('pong');
done();
});
it('should run the method when plugin exists', done => {
plugin.customPing().then(res => {
expect(res).toEqual('pong');
done();
});
});
it('shouldnt run the method when plugin doesnt exist', (done) => {
it('shouldnt run the method when plugin doesnt exist', done => {
delete window.testPlugin;
window.cordova = true;
plugin.customPing()
.catch(e => {
expect(e).toEqual(ERR_PLUGIN_NOT_INSTALLED.error);
done();
});
plugin.customPing().catch(e => {
expect(e).toEqual(ERR_PLUGIN_NOT_INSTALLED.error);
done();
});
});
});
describe('CordovaOptions', () => {
describe('destruct', () => {
it('should destruct values returned by a Promise', (done) => {
plugin.destructPromise()
.then((args: any[]) => {
expect(args).toEqual(['hello', 'world']);
done();
});
it('should destruct values returned by a Promise', done => {
plugin.destructPromise().then((args: any[]) => {
expect(args).toEqual(['hello', 'world']);
done();
});
});
it('should destruct values returned by an Observable', (done) => {
plugin.destructObservable()
.subscribe((args: any[]) => {
expect(args).toEqual(['hello', 'world']);
done();
});
it('should destruct values returned by an Observable', done => {
plugin.destructObservable().subscribe((args: any[]) => {
expect(args).toEqual(['hello', 'world']);
done();
});
});
});
});
});
describe('Instance Decorators', () => {
let instance: TestObject,
plugin: TestPlugin;
let instance: TestObject, plugin: TestPlugin;
beforeEach(() => {
definePlugin();
@@ -228,20 +218,14 @@ describe('Instance Decorators', () => {
instance = plugin.create();
});
describe('Instance plugin', () => {
});
describe('Instance plugin', () => {});
describe('CordovaInstance', () => {
it('should call instance async method', (done) => {
instance.ping()
.then(r => {
expect(r).toEqual('pong');
done();
});
it('should call instance async method', done => {
instance.ping().then(r => {
expect(r).toEqual('pong');
done();
});
});
it('should call instance sync method', () => {
@@ -249,18 +233,16 @@ describe('Instance Decorators', () => {
});
it('shouldnt call instance method when _objectInstance is undefined', () => {
delete instance._objectInstance;
instance.ping()
instance
.ping()
.then(r => {
expect(r).toBeUndefined();
})
.catch(e => {
expect(e).toBeUndefined();
});
});
});
describe('InstanceProperty', () => {
@@ -273,5 +255,4 @@ describe('Instance Decorators', () => {
expect(instance.name).toEqual('John Cena');
});
});
});

View File

@@ -1,8 +1,16 @@
import { instanceAvailability, checkAvailability, wrap, wrapInstance, overrideFunction } from './plugin';
import { getPlugin, getPromise } from './util';
import { Observable } from 'rxjs/Observable';
import 'rxjs/observable/throw';
import { Observable } from 'rxjs/Observable';
import {
checkAvailability,
instanceAvailability,
overrideFunction,
wrap,
wrapInstance
} from './plugin';
import { getPlugin, getPromise } from './util';
export interface PluginConfig {
/**
* Plugin name, this should match the class name
@@ -109,21 +117,23 @@ export interface CordovaCheckOptions {
* @private
*/
export function InstanceCheck(opts: CordovaCheckOptions = {}) {
return (pluginObj: Object, methodName: string, descriptor: TypedPropertyDescriptor<any>): TypedPropertyDescriptor<any> => {
return (
pluginObj: Object,
methodName: string,
descriptor: TypedPropertyDescriptor<any>
): TypedPropertyDescriptor<any> => {
return {
value: function(...args: any[]): any {
if (instanceAvailability(this)) {
return descriptor.value.apply(this, args);
} else {
if (opts.sync) {
return;
} else if (opts.observable) {
return new Observable<any>(() => { });
return new Observable<any>(() => {});
}
return getPromise(() => { });
return getPromise(() => {});
}
},
enumerable: true
@@ -136,7 +146,11 @@ export function InstanceCheck(opts: CordovaCheckOptions = {}) {
* @private
*/
export function CordovaCheck(opts: CordovaCheckOptions = {}) {
return (pluginObj: Object, methodName: string, descriptor: TypedPropertyDescriptor<any>): TypedPropertyDescriptor<any> => {
return (
pluginObj: Object,
methodName: string,
descriptor: TypedPropertyDescriptor<any>
): TypedPropertyDescriptor<any> => {
return {
value: function(...args: any[]): any {
const check = checkAvailability(pluginObj);
@@ -177,7 +191,6 @@ export function CordovaCheck(opts: CordovaCheckOptions = {}) {
*/
export function Plugin(config: PluginConfig): ClassDecorator {
return function(cls: any) {
// Add these fields to the class
for (let prop in config) {
cls[prop] = config[prop];
@@ -226,7 +239,11 @@ export function Plugin(config: PluginConfig): ClassDecorator {
* and the required plugin are installed.
*/
export function Cordova(opts: CordovaOptions = {}) {
return (target: Object, methodName: string, descriptor: TypedPropertyDescriptor<any>) => {
return (
target: Object,
methodName: string,
descriptor: TypedPropertyDescriptor<any>
) => {
return {
value: function(...args: any[]) {
return wrap(this, methodName, opts).apply(this, args);
@@ -268,7 +285,7 @@ export function CordovaProperty(target: any, key: string) {
return null;
}
},
set: (value) => {
set: value => {
if (checkAvailability(target, key) === true) {
getPlugin(target.constructor.getPluginRef())[key] = value;
}
@@ -301,7 +318,11 @@ export function InstanceProperty(target: any, key: string) {
* and the required plugin are installed.
*/
export function CordovaFunctionOverride(opts: any = {}) {
return (target: Object, methodName: string, descriptor: TypedPropertyDescriptor<any>) => {
return (
target: Object,
methodName: string,
descriptor: TypedPropertyDescriptor<any>
) => {
return {
value: function(...args: any[]) {
return overrideFunction(this, methodName, opts);
@@ -310,4 +331,3 @@ export function CordovaFunctionOverride(opts: any = {}) {
};
};
}

View File

@@ -1,8 +1,7 @@
// This is to verify that new (FileTransfer.getPlugin)() works
import { Plugin, CordovaInstance } from './decorators';
import { checkAvailability } from './plugin';
import { CordovaInstance, Plugin } from './decorators';
import { IonicNativePlugin } from './ionic-native-plugin';
import { checkAvailability } from './plugin';
class FT {
hello(): string {
@@ -21,7 +20,13 @@ class FT {
export class FileTransfer extends IonicNativePlugin {
create(): FileTransferObject {
let instance: any;
if (checkAvailability(FileTransfer.getPluginRef(), null, FileTransfer.getPluginName()) === true) {
if (
checkAvailability(
FileTransfer.getPluginRef(),
null,
FileTransfer.getPluginName()
) === true
) {
instance = new (FileTransfer.getPlugin())();
}
return new FileTransferObject(instance);
@@ -29,20 +34,21 @@ export class FileTransfer extends IonicNativePlugin {
}
export class FileTransferObject {
constructor(public _objectInstance: any) {
console.info('Creating a new FileTransferObject with instance: ', _objectInstance);
console.info(
'Creating a new FileTransferObject with instance: ',
_objectInstance
);
}
@CordovaInstance({ sync: true })
hello(): string { return; }
hello(): string {
return;
}
}
describe('Mock FileTransfer Plugin', () => {
let plugin: FileTransfer,
instance: FileTransferObject;
let plugin: FileTransfer, instance: FileTransferObject;
beforeAll(() => {
plugin = new FileTransfer();
@@ -65,5 +71,4 @@ describe('Mock FileTransfer Plugin', () => {
console.info('instance hello is', instance.hello());
expect(instance.hello()).toEqual('world');
});
});

View File

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

View File

@@ -1,9 +1,10 @@
import { getPlugin, getPromise, cordovaWarn, pluginWarn } from './util';
import { checkReady } from './bootstrap';
import { CordovaOptions } from './decorators';
import 'rxjs/add/observable/fromEvent';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
import { checkReady } from './bootstrap';
import { CordovaOptions } from './decorators';
import { cordovaWarn, getPlugin, getPromise, pluginWarn } from './util';
checkReady();
@@ -13,16 +14,26 @@ checkReady();
export const ERR_CORDOVA_NOT_AVAILABLE = { error: 'cordova_not_available' };
export const ERR_PLUGIN_NOT_INSTALLED = { error: 'plugin_not_installed' };
/**
* Checks if plugin/cordova is available
* @return {boolean | { error: string } }
* @private
*/
export function checkAvailability(pluginRef: string, methodName?: string, pluginName?: string): boolean | { error: string };
export function checkAvailability(pluginObj: any, methodName?: string, pluginName?: string): boolean | { error: string };
export function checkAvailability(plugin: any, methodName?: string, pluginName?: string): boolean | { error: string } {
export function checkAvailability(
pluginRef: string,
methodName?: string,
pluginName?: string
): boolean | { error: string };
export function checkAvailability(
pluginObj: any,
methodName?: string,
pluginName?: string
): boolean | { error: string };
export function checkAvailability(
plugin: any,
methodName?: string,
pluginName?: string
): boolean | { error: string } {
let pluginRef, pluginInstance, pluginPackage;
if (typeof plugin === 'string') {
@@ -35,7 +46,10 @@ export function checkAvailability(plugin: any, methodName?: string, pluginName?:
pluginInstance = getPlugin(pluginRef);
if (!pluginInstance || (!!methodName && typeof pluginInstance[methodName] === 'undefined')) {
if (
!pluginInstance ||
(!!methodName && typeof pluginInstance[methodName] === 'undefined')
) {
if (!window.cordova) {
cordovaWarn(pluginName, methodName);
return ERR_CORDOVA_NOT_AVAILABLE;
@@ -52,11 +66,23 @@ export function checkAvailability(plugin: any, methodName?: string, pluginName?:
* Checks if _objectInstance exists and has the method/property
* @private
*/
export function instanceAvailability(pluginObj: any, methodName?: string): boolean {
return pluginObj._objectInstance && (!methodName || typeof pluginObj._objectInstance[methodName] !== 'undefined');
export function instanceAvailability(
pluginObj: any,
methodName?: string
): boolean {
return (
pluginObj._objectInstance &&
(!methodName ||
typeof pluginObj._objectInstance[methodName] !== 'undefined')
);
}
function setIndex(args: any[], opts: any = {}, resolve?: Function, reject?: Function): any {
function setIndex(
args: any[],
opts: any = {},
resolve?: Function,
reject?: Function
): any {
// ignore resolve and reject in case sync
if (opts.sync) {
return args;
@@ -75,12 +101,19 @@ function setIndex(args: any[], opts: any = {}, resolve?: Function, reject?: Func
resolve(result);
}
});
} else if (opts.callbackStyle === 'object' && opts.successName && opts.errorName) {
} else if (
opts.callbackStyle === 'object' &&
opts.successName &&
opts.errorName
) {
let obj: any = {};
obj[opts.successName] = resolve;
obj[opts.errorName] = reject;
args.push(obj);
} else if (typeof opts.successIndex !== 'undefined' || typeof opts.errorIndex !== 'undefined') {
} else if (
typeof opts.successIndex !== 'undefined' ||
typeof opts.errorIndex !== 'undefined'
) {
const setSuccessIndex = () => {
// If we've specified a success/error index
if (opts.successIndex > args.length) {
@@ -106,8 +139,6 @@ function setIndex(args: any[], opts: any = {}, resolve?: Function, reject?: Func
setSuccessIndex();
setErrorIndex();
}
} else {
// Otherwise, let's tack them on to the end of the argument list
// which is 90% of cases
@@ -117,7 +148,14 @@ function setIndex(args: any[], opts: any = {}, resolve?: Function, reject?: Func
return args;
}
function callCordovaPlugin(pluginObj: any, methodName: string, args: any[], opts: any = {}, resolve?: Function, reject?: Function) {
function callCordovaPlugin(
pluginObj: any,
methodName: string,
args: any[],
opts: any = {},
resolve?: Function,
reject?: Function
) {
// Try to figure out where the success/error callbacks need to be bound
// to our promise resolve/reject handlers.
args = setIndex(args, opts, resolve, reject);
@@ -130,16 +168,34 @@ function callCordovaPlugin(pluginObj: any, methodName: string, args: any[], opts
} else {
return availabilityCheck;
}
}
function wrapPromise(pluginObj: any, methodName: string, args: any[], opts: any = {}) {
function wrapPromise(
pluginObj: any,
methodName: string,
args: any[],
opts: any = {}
) {
let pluginResult: any, rej: Function;
const p = getPromise((resolve: Function, reject: Function) => {
if (opts.destruct) {
pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, (...args: any[]) => resolve(args), (...args: any[]) => reject(args));
pluginResult = callCordovaPlugin(
pluginObj,
methodName,
args,
opts,
(...args: any[]) => resolve(args),
(...args: any[]) => reject(args)
);
} else {
pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, resolve, reject);
pluginResult = callCordovaPlugin(
pluginObj,
methodName,
args,
opts,
resolve,
reject
);
}
rej = reject;
});
@@ -147,13 +203,18 @@ function wrapPromise(pluginObj: any, methodName: string, args: any[], opts: any
// a warning that Cordova is undefined or the plugin is uninstalled, so there is no reason
// to error
if (pluginResult && pluginResult.error) {
p.catch(() => { });
p.catch(() => {});
typeof rej === 'function' && rej(pluginResult.error);
}
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: Function, reject: Function) => {
const pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts);
if (pluginResult) {
@@ -168,14 +229,33 @@ function wrapOtherPromise(pluginObj: any, methodName: string, args: any[], opts:
});
}
function wrapObservable(pluginObj: any, methodName: string, args: any[], opts: any = {}) {
function wrapObservable(
pluginObj: any,
methodName: string,
args: any[],
opts: any = {}
) {
return new Observable(observer => {
let pluginResult;
if (opts.destruct) {
pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, (...args: any[]) => observer.next(args), (...args: any[]) => observer.error(args));
pluginResult = callCordovaPlugin(
pluginObj,
methodName,
args,
opts,
(...args: any[]) => observer.next(args),
(...args: any[]) => observer.error(args)
);
} else {
pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, observer.next.bind(observer), observer.error.bind(observer));
pluginResult = callCordovaPlugin(
pluginObj,
methodName,
args,
opts,
observer.next.bind(observer),
observer.error.bind(observer)
);
}
if (pluginResult && pluginResult.error) {
@@ -186,26 +266,45 @@ function wrapObservable(pluginObj: any, methodName: string, args: any[], opts: a
try {
if (opts.clearFunction) {
if (opts.clearWithArgs) {
return callCordovaPlugin(pluginObj, opts.clearFunction, args, opts, observer.next.bind(observer), observer.error.bind(observer));
return callCordovaPlugin(
pluginObj,
opts.clearFunction,
args,
opts,
observer.next.bind(observer),
observer.error.bind(observer)
);
}
return callCordovaPlugin(pluginObj, opts.clearFunction, []);
}
} catch (e) {
console.warn('Unable to clear the previous observable watch for', pluginObj.constructor.getPluginName(), methodName);
console.warn(
'Unable to clear the previous observable watch for',
pluginObj.constructor.getPluginName(),
methodName
);
console.warn(e);
}
};
});
}
function callInstance(pluginObj: any, methodName: string, args: any[], opts: any = {}, resolve?: Function, reject?: Function) {
function callInstance(
pluginObj: any,
methodName: string,
args: any[],
opts: any = {},
resolve?: Function,
reject?: Function
) {
args = setIndex(args, opts, resolve, reject);
if (instanceAvailability(pluginObj, methodName)) {
return pluginObj._objectInstance[methodName].apply(pluginObj._objectInstance, args);
return pluginObj._objectInstance[methodName].apply(
pluginObj._objectInstance,
args
);
}
}
/**
@@ -215,7 +314,10 @@ function callInstance(pluginObj: any, methodName: string, args: any[], opts: any
* @param element The element to attach the event listener to
* @returns {Observable}
*/
export function wrapEventObservable(event: string, element: any = window): Observable<any> {
export function wrapEventObservable(
event: string,
element: any = window
): Observable<any> {
return Observable.fromEvent(element, event);
}
@@ -227,28 +329,38 @@ export function wrapEventObservable(event: string, element: any = window): Obser
* does just this.
* @private
*/
export function overrideFunction(pluginObj: any, methodName: string, args: any[], opts: any = {}): Observable<any> {
export function overrideFunction(
pluginObj: any,
methodName: string,
args: any[],
opts: any = {}
): Observable<any> {
return new Observable(observer => {
const availabilityCheck = checkAvailability(pluginObj, null, pluginObj.constructor.getPluginName());
const availabilityCheck = checkAvailability(
pluginObj,
null,
pluginObj.constructor.getPluginName()
);
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();
}
});
}
/**
* @private
*/
export const wrap = function(pluginObj: any, methodName: string, opts: CordovaOptions = {}) {
export const wrap = function(
pluginObj: any,
methodName: string,
opts: CordovaOptions = {}
) {
return (...args: any[]) => {
if (opts.sync) {
// Sync doesn't wrap the plugin with a promise or observable, it returns the result as-is
@@ -268,22 +380,36 @@ export const wrap = function(pluginObj: any, methodName: string, opts: CordovaOp
/**
* @private
*/
export function wrapInstance(pluginObj: any, methodName: string, opts: any = {}) {
export function wrapInstance(
pluginObj: any,
methodName: string,
opts: any = {}
) {
return (...args: any[]) => {
if (opts.sync) {
return callInstance(pluginObj, methodName, args, opts);
} else if (opts.observable) {
return new Observable(observer => {
let pluginResult;
if (opts.destruct) {
pluginResult = callInstance(pluginObj, methodName, args, opts, (...args: any[]) => observer.next(args), (...args: any[]) => observer.error(args));
pluginResult = callInstance(
pluginObj,
methodName,
args,
opts,
(...args: any[]) => observer.next(args),
(...args: any[]) => observer.error(args)
);
} else {
pluginResult = callInstance(pluginObj, methodName, args, opts, observer.next.bind(observer), observer.error.bind(observer));
pluginResult = callInstance(
pluginObj,
methodName,
args,
opts,
observer.next.bind(observer),
observer.error.bind(observer)
);
}
if (pluginResult && pluginResult.error) {
@@ -294,23 +420,47 @@ export function wrapInstance(pluginObj: any, methodName: string, opts: any = {})
return () => {
try {
if (opts.clearWithArgs) {
return callInstance(pluginObj, opts.clearFunction, args, opts, observer.next.bind(observer), observer.error.bind(observer));
return callInstance(
pluginObj,
opts.clearFunction,
args,
opts,
observer.next.bind(observer),
observer.error.bind(observer)
);
}
return callInstance(pluginObj, opts.clearFunction, []);
} catch (e) {
console.warn('Unable to clear the previous observable watch for', pluginObj.constructor.getPluginName(), methodName);
console.warn(
'Unable to clear the previous observable watch for',
pluginObj.constructor.getPluginName(),
methodName
);
console.warn(e);
}
};
});
} else if (opts.otherPromise) {
return getPromise((resolve: Function, reject: Function) => {
let result;
if (opts.destruct) {
result = callInstance(pluginObj, methodName, args, opts, (...args: any[]) => resolve(args), (...args: any[]) => reject(args));
result = callInstance(
pluginObj,
methodName,
args,
opts,
(...args: any[]) => resolve(args),
(...args: any[]) => reject(args)
);
} else {
result = callInstance(pluginObj, methodName, args, opts, resolve, reject);
result = callInstance(
pluginObj,
methodName,
args,
opts,
resolve,
reject
);
}
if (result && !!result.then) {
result.then(resolve, reject);
@@ -318,14 +468,27 @@ export function wrapInstance(pluginObj: any, methodName: string, opts: any = {})
reject();
}
});
} else {
let pluginResult: any, rej: Function;
const p = getPromise((resolve: Function, reject: Function) => {
if (opts.destruct) {
pluginResult = callInstance(pluginObj, methodName, args, opts, (...args: any[]) => resolve(args), (...args: any[]) => reject(args));
pluginResult = callInstance(
pluginObj,
methodName,
args,
opts,
(...args: any[]) => resolve(args),
(...args: any[]) => reject(args)
);
} else {
pluginResult = callInstance(pluginObj, methodName, args, opts, resolve, reject);
pluginResult = callInstance(
pluginObj,
methodName,
args,
opts,
resolve,
reject
);
}
rej = reject;
});
@@ -333,12 +496,10 @@ export function wrapInstance(pluginObj: any, methodName: string, opts: any = {})
// a warning that Cordova is undefined or the plugin is uninstalled, so there is no reason
// to error
if (pluginResult && pluginResult.error) {
p.catch(() => { });
p.catch(() => {});
typeof rej === 'function' && rej(pluginResult.error);
}
return p;
}
};
}

View File

@@ -7,25 +7,27 @@ export const get = (element: Element | Window, path: string): any => {
const paths: string[] = path.split('.');
let obj: any = element;
for (let i: number = 0; i < paths.length; i++) {
if (!obj) { return null; }
if (!obj) {
return null;
}
obj = obj[paths[i]];
}
return obj;
};
/**
* @private
*/
export const getPromise = (callback: Function): Promise<any> => {
const tryNativePromise = () => {
if (window.Promise) {
return new Promise((resolve, reject) => {
callback(resolve, reject);
});
} else {
console.error('No Promise support or polyfill found. To enable Ionic Native support, please add the es6-promise polyfill before this script, or run with a library like Angular or on a recent browser.');
console.error(
'No Promise support or polyfill found. To enable Ionic Native support, please add the es6-promise polyfill before this script, or run with a library like Angular or on a recent browser.'
);
}
};
@@ -44,14 +46,30 @@ export const getPlugin = (pluginRef: string): any => {
/**
* @private
*/
export const pluginWarn = (pluginName: string, plugin?: string, method?: string): void => {
export const pluginWarn = (
pluginName: string,
plugin?: string,
method?: string
): void => {
if (method) {
console.warn('Native: tried calling ' + pluginName + '.' + method + ', but the ' + pluginName + ' plugin is not installed.');
console.warn(
'Native: tried calling ' +
pluginName +
'.' +
method +
', but the ' +
pluginName +
' plugin is not installed.'
);
} else {
console.warn('Native: tried accessing the ' + pluginName + ' plugin but it\'s not installed.');
console.warn(
`'Native: tried accessing the ${pluginName} plugin but it's not installed.`
);
}
if (plugin) {
console.warn('Install the ' + pluginName + ' plugin: \'ionic cordova plugin add ' + plugin + '\'');
console.warn(
`Install the ${pluginName} plugin: 'ionic cordova plugin add ${plugin}'`
);
}
};
@@ -62,8 +80,18 @@ export const pluginWarn = (pluginName: string, plugin?: string, method?: string)
*/
export const cordovaWarn = (pluginName: string, method?: string): void => {
if (method) {
console.warn('Native: tried calling ' + pluginName + '.' + method + ', but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');
console.warn(
'Native: tried calling ' +
pluginName +
'.' +
method +
', but Cordova is not available. Make sure to include cordova.js or run in a device/simulator'
);
} else {
console.warn('Native: tried accessing the ' + pluginName + ' plugin but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');
console.warn(
'Native: tried accessing the ' +
pluginName +
' plugin but Cordova is not available. Make sure to include cordova.js or run in a device/simulator'
);
}
};

View File

@@ -1,8 +1,7 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface ActionSheetOptions {
/**
* The labels for the buttons. Uses the index x
*/
@@ -98,7 +97,6 @@ export interface ActionSheetOptions {
})
@Injectable()
export class ActionSheet extends IonicNativePlugin {
/**
* Convenience property to select an Android theme value
*/
@@ -118,18 +116,22 @@ export class ActionSheet extends IonicNativePlugin {
/**
* Show a native ActionSheet component. See below for options.
* @param options {ActionSheetOptions} Options See table below
* @param {ActionSheetOptions} [options] Options See table below
* @returns {Promise<any>} Returns a Promise that resolves with the index of the
* button pressed (1 based, so 1, 2, 3, etc.)
*/
@Cordova()
show(options?: ActionSheetOptions): Promise<number> { return; }
show(options?: ActionSheetOptions): Promise<number> {
return;
}
/**
* Progamtically hide the native ActionSheet
* Programmatically hide the native ActionSheet
* @param {ActionSheetOptions} [options] Options See table below
* @returns {Promise<any>} Returns a Promise that resolves when the actionsheet is closed
*/
@Cordova()
hide(options?: any): Promise<any> { return; }
hide(options?: ActionSheetOptions): Promise<any> {
return;
}
}

View File

@@ -1,8 +1,9 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface AdMobFreeBannerConfig {
/**
* Ad Unit ID
@@ -114,12 +115,11 @@ export interface AdMobFreeRewardVideoConfig {
})
@Injectable()
export class AdMobFree extends IonicNativePlugin {
/**
* Convenience object to get event names
* @type {Object}
*/
events: any = {
events = {
BANNER_LOAD: 'admob.banner.events.LOAD',
BANNER_LOAD_FAIL: 'admob.banner.events.LOAD_FAIL',
BANNER_OPEN: 'admob.banner.events.OPEN',
@@ -167,7 +167,6 @@ export class AdMobFree extends IonicNativePlugin {
* @type {AdMobFreeRewardVideo}
*/
rewardVideo: AdMobFreeRewardVideo = new AdMobFreeRewardVideo();
}
/**
@@ -176,46 +175,54 @@ export class AdMobFree extends IonicNativePlugin {
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob.banner',
pluginRef: 'admob.banner'
})
export class AdMobFreeBanner {
/**
* Update config.
* Update config
* @param options
* @return {AdMobFreeBannerConfig}
*/
@Cordova({ sync: true })
config(options: AdMobFreeBannerConfig): AdMobFreeBannerConfig { return; }
config(options: AdMobFreeBannerConfig): AdMobFreeBannerConfig {
return;
}
/**
* Hide the banner.
* Hide the banner
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
hide(): Promise<any> { return; }
hide(): Promise<any> {
return;
}
/**
* Create banner.
* Create banner
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
prepare(): Promise<any> { return; }
prepare(): Promise<any> {
return;
}
/**
* Remove the banner.
* Remove the banner
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
remove(): Promise<any> { return; }
remove(): Promise<any> {
return;
}
/**
* Show the banner.
* Show the banner
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
show(): Promise<any> { return; }
show(): Promise<any> {
return;
}
}
/**
@@ -224,39 +231,45 @@ export class AdMobFreeBanner {
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob.interstitial',
pluginRef: 'admob.interstitial'
})
export class AdMobFreeInterstitial {
/**
* Update config.
* Update config
* @param options
* @return {AdMobFreeInterstitialConfig}
*/
@Cordova({ sync: true })
config(options: AdMobFreeInterstitialConfig): AdMobFreeInterstitialConfig { return; }
config(options: AdMobFreeInterstitialConfig): AdMobFreeInterstitialConfig {
return;
}
/**
* Check if interstitial is ready
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
isReady(): Promise<any> { return; }
isReady(): Promise<any> {
return;
}
/**
* Prepare interstitial
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
prepare(): Promise<any> { return; }
prepare(): Promise<any> {
return;
}
/**
* Show the interstitial
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
show(): Promise<any> { return; }
show(): Promise<any> {
return;
}
}
/**
@@ -265,37 +278,43 @@ export class AdMobFreeInterstitial {
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob.rewardvideo',
pluginRef: 'admob.rewardvideo'
})
export class AdMobFreeRewardVideo {
/**
* Update config.
* @param options
* Update config
* @param {AdMobFreeRewardVideoConfig} options Admob reward config
* @return {AdMobFreeRewardVideoConfig}
*/
@Cordova({ sync: true })
config(options: AdMobFreeRewardVideoConfig): AdMobFreeRewardVideoConfig { return; }
config(options: AdMobFreeRewardVideoConfig): AdMobFreeRewardVideoConfig {
return;
}
/**
* Check if reward video is ready
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
isReady(): Promise<any> { return; }
isReady(): Promise<any> {
return;
}
/**
* Prepare reward video
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
prepare(): Promise<any> { return; }
prepare(): Promise<any> {
return;
}
/**
* Show the reward video
* @return {Promise<any>}
*/
@Cordova({ otherPromise: true })
show(): Promise<any> { return; }
show(): Promise<any> {
return;
}
}

View File

@@ -170,7 +170,7 @@ export class AdMobPro extends IonicNativePlugin {
/**
* Create a banner
* @param adIdOrOptions {string | AdMobOptions} Ad ID or Options
* @param {string | AdMobOptions} adIdOrOptions Ad ID or Options
* @returns {Promise<any>} Returns a Promise that resolves when the banner is created
*/
@Cordova()
@@ -188,7 +188,7 @@ export class AdMobPro extends IonicNativePlugin {
/**
* Show banner at position
* @param position {number} Position. Use `AdMobPro.AD_POSITION` to set values.
* @param {number} position Position. Use `AdMobPro.AD_POSITION` to set values.
*/
@Cordova({
sync: true
@@ -197,8 +197,8 @@ export class AdMobPro extends IonicNativePlugin {
/**
* Show banner at custom position
* @param x {number} Offset from screen left.
* @param y {number} Offset from screen top.
* @param {number} x Offset from screen left.
* @param {number} y Offset from screen top.
*/
@Cordova({
sync: true
@@ -215,7 +215,7 @@ export class AdMobPro extends IonicNativePlugin {
/**
* Prepare interstitial banner
* @param adIdOrOptions {string | AdMobOptions} Ad ID or Options
* @param {string | AdMobOptions} adIdOrOptions Ad ID or Options
* @returns {Promise<any>} Returns a Promise that resolves when interstitial is prepared
*/
@Cordova()
@@ -233,7 +233,7 @@ export class AdMobPro extends IonicNativePlugin {
/**
* Prepare a reward video ad
* @param adIdOrOptions {string | AdMobOptions} Ad ID or Options
* @param {string | AdMobOptions} adIdOrOptions Ad ID or Options
* @returns {Promise<any>} Returns a Promise that resolves when the ad is prepared
*/
@Cordova()
@@ -251,7 +251,7 @@ export class AdMobPro extends IonicNativePlugin {
/**
* Sets the values for configuration and targeting
* @param options {AdMobOptions} Options
* @param {AdMobOptions} options Options
* @returns {Promise<any>} Returns a Promise that resolves when the options have been set
*/
@Cordova()

View File

@@ -1,7 +1,5 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface AlipayOrder {
/**
@@ -101,7 +99,8 @@ export interface AlipayOrder {
plugin: 'cordova-alipay-base',
pluginRef: 'Alipay.Base',
repo: 'https://github.com/xueron/cordova-alipay-base',
install: 'ionic cordova plugin add cordova-alipay-base --variable ALI_PID=your_app_id',
install:
'ionic cordova plugin add cordova-alipay-base --variable ALI_PID=your_app_id',
installVariables: ['ALI_PID'],
platforms: ['Android', 'iOS']
})
@@ -109,9 +108,11 @@ export interface AlipayOrder {
export class Alipay extends IonicNativePlugin {
/**
* Open Alipay to perform App pay
* @param order { AlipayOrder | string } alipay options
* @param { AlipayOrder | string } order alipay options
* @returns {Promise<any>} Returns a Promise that resolves with the success return, or rejects with an error.
*/
@Cordova()
pay(order: AlipayOrder | string): Promise<any> { return; }
pay(order: AlipayOrder | string): Promise<any> {
return;
}
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export type AndroidExoPlayerAspectRatio = 'FILL_SCREEN' | 'FIT_SCREEN';
@@ -138,7 +138,7 @@ export interface AndroidExoPlayerControllerConfig {
exo_play: string;
/**
* Payse button icon.
* Pause button icon.
*/
exo_pause: string;
@@ -184,90 +184,115 @@ export interface AndroidExoPlayerControllerConfig {
export class AndroidExoplayer extends IonicNativePlugin {
/**
* Show the player.
* @param parameters {AndroidExoPlayerParams} Parameters
* @param {AndroidExoPlayerParams} parameters Parameters
* @return {Observable<AndroidExoplayerState>}
*/
@Cordova({
observable: true,
clearFunction: 'close',
clearWithArgs: false,
successIndex: 1,
errorIndex: 2
})
show(parameters: AndroidExoPlayerParams): Observable<AndroidExoplayerState> { return; }
@Cordova({
observable: true,
clearFunction: 'close',
clearWithArgs: false,
successIndex: 1,
errorIndex: 2
})
show(parameters: AndroidExoPlayerParams): Observable<AndroidExoplayerState> {
return;
}
/**
* Switch stream without disposing of the player.
* @param url {string} The url of the new stream.
* @param controller {AndroidExoPlayerControllerConfig} Configuration of the controller.
* @param {string} url The url of the new stream.
* @param {AndroidExoPlayerControllerConfig} controller Configuration of the controller.
* @return {Promise<void>}
*/
@Cordova()
setStream(url: string, controller: AndroidExoPlayerControllerConfig): Promise<void> { return; }
setStream(
url: string,
controller: AndroidExoPlayerControllerConfig
): Promise<void> {
return;
}
/**
* Will pause if playing and play if paused
* @return {Promise<void>}
*/
@Cordova()
playPause(): Promise<void> { return; }
playPause(): Promise<void> {
return;
}
/**
* Stop playing.
* @return {Promise<void>}
*/
@Cordova()
stop(): Promise<void> { return; }
stop(): Promise<void> {
return;
}
/**
* Jump to a particular position.
* @param milliseconds {number} Position in stream in milliseconds
* @param {number} milliseconds Position in stream in milliseconds
* @return {Promise<void>}
*/
@Cordova()
seekTo(milliseconds: number): Promise<void> { return; }
seekTo(milliseconds: number): Promise<void> {
return;
}
/**
* Jump to a particular time relative to the current position.
* @param milliseconds {number} Time in milliseconds
* @param {number} milliseconds Time in milliseconds
* @return {Promise<void>}
*/
@Cordova()
seekBy(milliseconds: number): Promise<void> { return; }
seekBy(milliseconds: number): Promise<void> {
return;
}
/**
* Get the current player state.
* @return {Promise<AndroidExoplayerState>}
*/
@Cordova()
getState(): Promise<AndroidExoplayerState> { return; }
getState(): Promise<AndroidExoplayerState> {
return;
}
/**
* Show the controller.
* @return {Promise<void>}
*/
@Cordova()
showController(): Promise<void> { return; }
showController(): Promise<void> {
return;
}
/**
* Hide the controller.
* @return {Promise<void>}
*/
@Cordova()
hideController(): Promise<void> { return; }
hideController(): Promise<void> {
return;
}
/**
* Update the controller configuration.
* @param controller {AndroidExoPlayerControllerConfig} Configuration of the controller.
* @param {AndroidExoPlayerControllerConfig} controller Configuration of the controller.
* @return {Promise<void>}
*/
@Cordova()
setController(controller: AndroidExoPlayerControllerConfig): Promise<void> { return; }
setController(controller: AndroidExoPlayerControllerConfig): Promise<void> {
return;
}
/**
* Close and dispose of player, call before destroy.
* @return {Promise<void>}
*/
@Cordova()
close(): Promise<void> { return; }
close(): Promise<void> {
return;
}
}

View File

@@ -1,9 +1,7 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface AFAAuthOptions {
/**
* Required
* Used as the alias for your key in the Android Key Store.
@@ -62,7 +60,6 @@ export interface AFAAuthOptions {
* Set the hint displayed by the fingerprint icon on the fingerprint authentication dialog.
*/
dialogHint?: string;
}
export interface AFADecryptOptions {
@@ -96,6 +93,17 @@ export interface AFAEncryptResponse {
token: string;
}
export interface AFAAvailableResponse {
isAvailable: boolean;
isHardwareDetected: boolean;
hasEnrolledFingerprints: boolean;
}
export interface AFADeleteOptions {
clientId: string;
username: string;
}
/**
* @name Android Fingerprint Auth
* @description
@@ -139,6 +147,8 @@ export interface AFAEncryptResponse {
* AFAAuthOptions
* AFAEncryptResponse
* AFADecryptOptions
* AFAAvailableResponse
* AFADeleteOptions
*/
@Plugin({
pluginName: 'AndroidFingerprintAuth',
@@ -149,55 +159,63 @@ export interface AFAEncryptResponse {
})
@Injectable()
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'
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.
* @param options {AFAAuthOptions} Options
* @returns {Promise<any>}
* @param {AFAAuthOptions} options Options
* @returns {Promise<AFAEncryptResponse>}
*/
@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.
* @param options {AFAAuthOptions} Options
* @returns {Promise<any>}
* @param {AFAAuthOptions} options Options
* @returns {Promise<AFADecryptOptions>}
*/
@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
* @returns {Promise<AFAAvailableResponse>} Returns a Promise that resolves if fingerprint auth is available on the device
*/
@Cordova()
isAvailable(): Promise<{ isAvailable: boolean, isHardwareDetected: boolean, hasEnrolledFingerprints: boolean }> { return; }
isAvailable(): Promise<AFAAvailableResponse> {
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
* @param {AFADeleteOptions} options Options
* @returns {Promise<{ deleted: boolean }>} Returns a Promise that resolves if the cipher was successfully deleted
*/
@Cordova()
delete(options: { clientId: string; username: string; }): Promise<{ deleted: boolean }> { return; }
delete(options: AFADeleteOptions): Promise<{ deleted: boolean }> {
return;
}
}

View File

@@ -1,5 +1,5 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name Android Permissions
@@ -37,12 +37,12 @@ import { Injectable } from '@angular/core';
})
@Injectable()
export class AndroidPermissions extends IonicNativePlugin {
PERMISSION: any = {
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_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',
@@ -53,12 +53,14 @@ export class AndroidPermissions extends IonicNativePlugin {
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_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_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',
@@ -79,12 +81,15 @@ export class AndroidPermissions extends IonicNativePlugin {
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_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_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_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',
@@ -130,7 +135,8 @@ export class AndroidPermissions extends IonicNativePlugin {
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_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',
@@ -164,7 +170,8 @@ export class AndroidPermissions extends IonicNativePlugin {
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',
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',
@@ -182,7 +189,8 @@ export class AndroidPermissions extends IonicNativePlugin {
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_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',
@@ -190,39 +198,46 @@ export class AndroidPermissions extends IonicNativePlugin {
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',
WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL'
};
/**
* Check permission
* @param permission {string} The name of the permission
* @param {string} permission The name of the permission
* @return {Promise<any>} Returns a promise
*/
@Cordova()
checkPermission(permission: string): Promise<any> { return; }
checkPermission(permission: string): Promise<any> {
return;
}
/**
* Request permission
* @param permission {string} The name of the permission to request
* @param {string} permission The name of the permission to request
* @return {Promise<any>}
*/
@Cordova()
requestPermission(permission: string): Promise<any> { return; }
requestPermission(permission: string): Promise<any> {
return;
}
/**
* Request permissions
* @param permissions {Array<string>} An array with permissions
* @param {Array<string>} permissions An array with permissions
* @return {Promise<any>} Returns a promise
*/
@Cordova()
requestPermissions(permissions: string[]): Promise<any> { return; }
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
* @param {string} permission The name of the permission
* @return {Promise<any>} Returns a promise
*/
@Cordova()
hasPermission(permission: string): Promise<any> { return; }
hasPermission(permission: string): Promise<any> {
return;
}
}

View File

@@ -0,0 +1,78 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface StringMap {
[s: string]: string;
}
/**
* @name App Center Analytics
* @description
* App Center Analytics helps you understand user behavior and customer engagement to improve your app.
* The SDK automatically captures session count and device properties like model, OS version, etc.
* You can define your own custom events to measure things that matter to you.
* All the information captured is available in the App Center portal for you to analyze the data.
*
* For more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/analytics/cordova
*
* @usage
* ```typescript
* import { AppCenterAnalytics } from '@ionic-native/app-center-analytics';
*
*
* constructor(private appCenterAnalytics: AppCenterAnalytics) { }
*
* ...
*
* this.appCenterAnalytics.setEnabled(true).then(() => {
* this.appCenterAnalytics.trackEvent('My Event', { TEST: 'HELLO_WORLD' }).then(() => {
* console.log('Custom event tracked');
* });
* });
*
* ```
* @interfaces
* StringMap
*/
@Plugin({
pluginName: 'AppCenterAnalytics',
plugin: 'cordova-plugin-appcenter-analytics',
pluginRef: 'AppCenter.Analytics',
repo:
'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-analytics',
platforms: ['Android', 'iOS']
})
@Injectable()
export class AppCenterAnalytics extends IonicNativePlugin {
/**
* Tracks an custom event.
* You can send up to 200 distinct event names. Also, there is a maximum limit of 256 characters per event name
* and 64 characters per event property name and event property value.
* @param {string} eventName Event name
* @param {StringMap} properties Event properties
* @returns {Promise<void>}
*/
@Cordova()
trackEvent(eventName: string, properties: StringMap): Promise<void> {
return;
}
/**
* Check if App Center Analytics is enabled
* @returns {Promise<boolean>}
*/
@Cordova()
isEnabled(): Promise<boolean> {
return;
}
/**
* Enable or disable App Center Analytics at runtime
* @param {boolean} shouldEnable Set value
* @returns {Promise<void>}
*/
@Cordova()
setEnabled(shouldEnable: boolean): Promise<void> {
return;
}
}

View File

@@ -0,0 +1,115 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface AppCenterCrashReport {
id: string;
device: AppCenterCrashReportDevice;
appStartTime: number;
appErrorTime: number;
signal: string;
appProcessIdentifier: number;
}
export interface AppCenterCrashReportDevice {
oem_name: string;
os_name: string;
app_version: string;
time_zone_offset: number;
carrier_name: string;
screen_size: string;
locale: string;
sdk_version: string;
carrier_country: string;
os_build: string;
app_namespace: string;
os_version: string;
sdk_name: string;
model: string;
app_build: string;
}
/**
* @name App Center Crashes
* @description
* App Center Analytics helps you understand user behavior and customer engagement to improve your app.
* The SDK automatically captures session count and device properties like model, OS version, etc.
* You can define your own custom events to measure things that matter to you.
* All the information captured is available in the App Center portal for you to analyze the data.
*
* For more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/crashes/cordova
*
* @usage
* ```typescript
* import { AppCenterCrashes } from '@ionic-native/app-center-crashes';
*
*
* constructor(private AppCenterCrashes: AppCenterCrashes) { }
*
* ...
*
* this.AppCenterCrashes.setEnabled(true).then(() => {
* this.AppCenterCrashes.lastSessionCrashReport().then(report => {
* console.log('Crash report', report);
* });
* });
*
* ```
* @interfaces
* AppCenterCrashReport
* AppCenterCrashReportDevice
*/
@Plugin({
pluginName: 'AppCenterCrashes',
plugin: 'cordova-plugin-appcenter-crashes',
pluginRef: 'AppCenter.Crashes',
repo:
'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-crashes',
platforms: ['Android', 'iOS']
})
@Injectable()
export class AppCenterCrashes extends IonicNativePlugin {
/**
* App Center Crashes provides you with an API to generate a test crash for easy testing of the SDK.
* This API can only be used in test/beta apps and won't do anything in production apps.
* @returns void
*/
@Cordova()
generateTestCrash(): void {}
/**
* At any time after starting the SDK, you can check if the app crashed in the previous launch
* @returns {Promise<boolean>}
*/
@Cordova()
hasCrashedInLastSession(): Promise<boolean> {
return;
}
/**
* Details about the last crash
* @returns {Promise<AppCenterCrashReport>}
*/
@Cordova()
lastSessionCrashReport(): Promise<AppCenterCrashReport> {
return;
}
/**
* Check if App Center Crashes is enabled
* @returns {Promise<boolean>}
*/
@Cordova()
isEnabled(): Promise<boolean> {
return;
}
/**
* Enable or disable App Center Crashes at runtime
* @param {boolean} shouldEnable Set value
* @returns {Promise<void>}
*/
@Cordova()
setEnabled(shouldEnable: boolean): Promise<void> {
return;
}
}

View File

@@ -0,0 +1,68 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
* @name App Center Push
* @description
*
* For more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/push/cordova
*
* @usage
* ```typescript
* import { AppCenterPush } from '@ionic-native/app-center-push';
*
*
* constructor(private appCenterPush: AppCenterPush) { }
*
* ...
*
* this.appCenterPush.setEnabled(true).then(() => {
* this.appCenterPush.addEventListener('My Event').subscribe(pushNotification => {
* console.log('Recived push notification', pushNotification);
* });
* });
*
* ```
*/
@Plugin({
pluginName: 'AppCenterPush',
plugin: 'cordova-plugin-appcenter-push',
pluginRef: 'AppCenter.Push',
repo:
'https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-push',
platforms: ['Android', 'iOS']
})
@Injectable()
export class AppCenterPush extends IonicNativePlugin {
/**
* Subscribe to an event
* @param {string} eventName Event name
* @returns {Observable<any>}
*/
@Cordova({
observable: true,
clearFunction: 'removeEventListener'
})
addEventListener(eventName: string): Observable<any> {
return;
}
/**
* Check if App Center Push is enabled
* @returns {Promise<boolean>}
*/
@Cordova()
isEnabled(): Promise<boolean> {
return;
}
/**
* Enable or disable App Center Push at runtime
* @param {boolean} shouldEnable Set value
* @returns {Promise<void>}
*/
@Cordova()
setEnabled(shouldEnable: boolean): Promise<void> {
return;
}
}

View File

@@ -51,7 +51,8 @@ export interface AppUpdateOptions {
export class AppUpdate extends IonicNativePlugin {
/**
* Check and update
* @param updateUrl {string} update api url
* @param {string} updateUrl update api url
* @param {AppUpdateOptions} [options] options
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova({

View File

@@ -1,17 +1,32 @@
import {Injectable} from '@angular/core';
import {Observable} from 'rxjs/Observable';
import {
Plugin,
Cordova,
IonicNativePlugin
} from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
export type IMakePayments = 'This device can make payments and has a supported card' | 'This device cannot make payments.' | 'This device can make payments but has no supported cards';
export type IMakePayments =
| 'This device can make payments and has a supported card'
| 'This device cannot make payments.'
| 'This device can make payments but has no supported cards';
export type IShippingType = 'shipping' | 'delivery' | 'store' | 'service';
export type IBillingRequirement = 'none' | 'all' | 'postcode' | 'name' | 'email' | 'phone';
export type ITransactionStatus = 'success' | 'failure' | 'invalid-billing-address' | 'invalid-shipping-address' | 'invalid-shipping-contact' | 'require-pin' | 'incorrect-pin' | 'locked-pin';
export type IBillingRequirement =
| 'none'
| 'all'
| 'postcode'
| 'name'
| 'email'
| 'phone';
export type ITransactionStatus =
| 'success'
| 'failure'
| 'invalid-billing-address'
| 'invalid-shipping-address'
| 'invalid-shipping-contact'
| 'require-pin'
| 'incorrect-pin'
| 'locked-pin';
export type ICompleteTransaction = 'Payment status applied.';
export type IUpdateItemsAndShippingStatus = 'Updated List Info' | 'Did you make a payment request?';
export type IUpdateItemsAndShippingStatus =
| 'Updated List Info'
| 'Did you make a payment request?';
export interface IPaymentResponse {
billingNameFirst?: string;
@@ -50,7 +65,7 @@ export interface IOrderItem {
label: string;
amount: number;
}
export interface IShippingMethod {
export interface IShippingMethod {
identifier: string;
label: string;
detail: string;
@@ -135,11 +150,10 @@ export interface ISelectedShippingContact {
plugin: 'cordova-plugin-applepay',
pluginRef: 'ApplePay',
repo: 'https://github.com/samkelleher/cordova-plugin-applepay',
platforms: ['iOS'],
platforms: ['iOS']
})
@Injectable()
export class ApplePay extends IonicNativePlugin {
/**
* Detects if the current device supports Apple Pay and has any capable cards registered.
* @return {Promise<IMakePayments>} Returns a promise
@@ -174,7 +188,9 @@ export class ApplePay extends IonicNativePlugin {
observable: true,
clearFunction: 'stopListeningForShippingContactSelection'
})
startListeningForShippingContactSelection(): Observable<ISelectedShippingContact> {
startListeningForShippingContactSelection(): Observable<
ISelectedShippingContact
> {
return;
}
@@ -196,9 +212,9 @@ export class ApplePay extends IonicNativePlugin {
* any shipping contact selection event or else the user will not be able
* to complete a transaction on the pay sheet. Do not call without
* subscribing to shipping contact selection events first
* @returns {Promise}
*
* @param {Object} including `items` and `shippingMethods` properties.
* @param {IOrderItemsAndShippingMethods} list `items` and `shippingMethods` properties.
* @returns {Promise<IUpdateItemsAndShippingStatus>}
*
* @usage
* this.applePay.startListeningForShippingContactSelection().pluck('shippingAddressState').subscribe(shippingAddressState => {
@@ -228,15 +244,17 @@ export class ApplePay extends IonicNativePlugin {
@Cordova({
otherPromise: true
})
updateItemsAndShippingMethods(list: IOrderItemsAndShippingMethods): Promise<IUpdateItemsAndShippingStatus> {
updateItemsAndShippingMethods(
list: IOrderItemsAndShippingMethods
): Promise<IUpdateItemsAndShippingStatus> {
return;
}
/**
* Request a payment with Apple Pay
* @return {Promise<IPaymentResponse>} Returns a promise that resolves when something happens
*
* @param order {IOrder}
* @param {IOrder} order
* @return {Promise<IPaymentResponse>} Returns a promise that resolves when something happens
*
* @usage
* try {
@@ -311,17 +329,19 @@ export class ApplePay extends IonicNativePlugin {
/**
* Once the makePaymentRequest has been resolved successfully, the device will be waiting for a completion event.
* This means, that the application must proceed with the token authorisation and return a success, failure,
* This means, that the application must proceed with the token authorization and return a success, failure,
* or other validation error. Once this has been passed back, the Apple Pay sheet will be dismissed via an animation.
* @return {Promise<ICompleteTransaction>} Returns a promise that resolves after confirmation of payment authorization completion
*
* @param complete {ITransactionStatus}
* @param {ITransactionStatus} complete
* @return {Promise<ICompleteTransaction>} Returns a promise that resolves after confirmation of payment authorization completion
*
*/
@Cordova({
otherPromise: true
})
completeLastTransaction(complete: ITransactionStatus): Promise<ICompleteTransaction> {
completeLastTransaction(
complete: ITransactionStatus
): Promise<ICompleteTransaction> {
return;
}
}

View File

@@ -4,7 +4,7 @@ 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.
* This plugin automatically starts your Android app after every boot or auto-update.
* You can enable or disable the autostart function in your app.
*
* @usage

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
@@ -21,9 +21,9 @@ export interface BackgroundModeConfiguration {
*/
icon?: string;
/**
* Set the background color of the notification circle
*/
/**
* Set the background color of the notification circle
*/
color?: string;
/**
@@ -31,9 +31,9 @@ export interface BackgroundModeConfiguration {
*/
resume?: boolean;
/**
* When set to false makes the notifications visible on lockscreen (Android 5.0+)
*/
/**
* When set to false makes the notifications visible on lock screen (Android 5.0+)
*/
hidden?: boolean;
/** Big text */
@@ -122,6 +122,7 @@ export class BackgroundMode extends IonicNativePlugin {
* Override the default title, ticker and text.
* Available only for Android platform.
* @param {BackgroundModeConfiguration} options List of option to configure. See table below
* @returns {Promise<any>}
*/
@Cordova({
platforms: ['Android']
@@ -133,7 +134,7 @@ export class BackgroundMode extends IonicNativePlugin {
/**
* Modify the displayed information.
* Available only for Android platform.
* @param {BackgroundModeConfiguration} options Any options you want to update. See table below.
* @param {BackgroundModeConfiguration} [options] Any options you want to update. See table below.
*/
@Cordova({
platforms: ['Android'],
@@ -202,6 +203,7 @@ export class BackgroundMode extends IonicNativePlugin {
/**
* The method works async instead of isActive() or isEnabled().
* @returns {Promise<boolean>}
*/
@Cordova({
platforms: ['Android']

View File

@@ -124,7 +124,7 @@ export class BarcodeScanner extends IonicNativePlugin {
/**
* Open the barcode scanner.
* @param options {BarcodeScannerOptions} Optional options to pass to the scanner
* @param {BarcodeScannerOptions} [options] Optional options to pass to the scanner
* @returns {Promise<any>} Returns a Promise that resolves with scanner data, or rejects with an error.
*/
@Cordova({
@@ -137,8 +137,8 @@ export class BarcodeScanner extends IonicNativePlugin {
/**
* Encodes data into a barcode.
* NOTE: not well supported on Android
* @param type {string} Type of encoding
* @param data {any} Data to encode
* @param {string} type Type of encoding
* @param {any} data Data to encode
* @returns {Promise<any>}
*/
@Cordova()

View File

@@ -74,7 +74,7 @@ export class BatteryStatus extends IonicNativePlugin {
}
/**
* Watch when the battery level goes to critial
* Watch when the battery level goes to critical
* @returns {Observable<BatteryStatusResponse>} Returns an observable that pushes a status object
*/
@Cordova({

View File

@@ -232,7 +232,7 @@ export class BLE extends IonicNativePlugin {
/**
* Scans for BLE devices. This function operates similarly to the `startScan` function, but allows you to specify extra options (like allowing duplicate device reports).
* @param {string[]} services List of service UUIDs to discover, or `[]` to find all devices
* @param options {any}
* @param {BLEScanOptions} options Options
* @returns {Observable<any>} Returns an Observable that notifies of each peripheral discovered.
*/
@Cordova({
@@ -259,7 +259,7 @@ export class BLE extends IonicNativePlugin {
* BLE.stopScan().then(() => { console.log('scan stopped'); });
* }, 5000);
* ```
* @return returns a Promise.
* @returns {Promise<any>}
*/
@Cordova()
stopScan(): Promise<any> {
@@ -277,8 +277,8 @@ export class BLE extends IonicNativePlugin {
* console.log('disconnected');
* });
* ```
* @param deviceId {string} UUID or MAC address of the peripheral
* @return Returns an Observable that notifies of connect/disconnect.
* @param {string} deviceId UUID or MAC address of the peripheral
* @return {Observable<any>} Returns an Observable that notifies of connect/disconnect.
*/
@Cordova({
observable: true,
@@ -297,8 +297,8 @@ export class BLE extends IonicNativePlugin {
* console.log('Disconnected');
* });
* ```
* @param deviceId {string} UUID or MAC address of the peripheral
* @return Returns a Promise
* @param {string} deviceId UUID or MAC address of the peripheral
* @return {Promise<any>} Returns a Promise
*/
@Cordova()
disconnect(deviceId: string): Promise<any> {
@@ -311,7 +311,7 @@ export class BLE extends IonicNativePlugin {
* @param {string} deviceId UUID or MAC address of the peripheral
* @param {string} serviceUUID UUID of the BLE service
* @param {string} characteristicUUID UUID of the BLE characteristic
* @return Returns a Promise
* @return {Promise<any>} Returns a Promise
*/
@Cordova()
read(
@@ -348,7 +348,7 @@ export class BLE extends IonicNativePlugin {
* @param {string} serviceUUID UUID of the BLE service
* @param {string} characteristicUUID UUID of the BLE characteristic
* @param {ArrayBuffer} value Data to write to the characteristic, as an ArrayBuffer.
* @return Returns a Promise
* @return {Promise<any>} Returns a Promise
*/
@Cordova()
write(
@@ -367,7 +367,7 @@ export class BLE extends IonicNativePlugin {
* @param {string} serviceUUID UUID of the BLE service
* @param {string} characteristicUUID UUID of the BLE characteristic
* @param {ArrayBuffer} value Data to write to the characteristic, as an ArrayBuffer.
* @return Returns a Promise
* @return {Promise<any>} Returns a Promise
*/
@Cordova()
writeWithoutResponse(
@@ -392,7 +392,7 @@ export class BLE extends IonicNativePlugin {
* @param {string} deviceId UUID or MAC address of the peripheral
* @param {string} serviceUUID UUID of the BLE service
* @param {string} characteristicUUID UUID of the BLE characteristic
* @return Returns an Observable that notifies of characteristic changes.
* @return {Observable<any>} Returns an Observable that notifies of characteristic changes.
*/
@Cordova({
observable: true,
@@ -462,7 +462,7 @@ export class BLE extends IonicNativePlugin {
* });
* ```
*
* @return Returns an Observable that notifies when the Bluetooth is enabled or disabled on the device.
* @return {Observable<any>} Returns an Observable that notifies when the Bluetooth is enabled or disabled on the device.
*/
@Cordova({
observable: true,
@@ -508,7 +508,7 @@ export class BLE extends IonicNativePlugin {
*
* @param {string} deviceId UUID or MAC address of the peripheral
*
*@returns {Promise<any>}
* @returns {Promise<any>}
*/
@Cordova()
readRSSI(deviceId: string): Promise<any> {

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* Options for the setupApplePay method.
@@ -116,8 +116,7 @@ export interface PaymentUIResult {
/**
* Information about the Apple Pay card used to complete a payment (if Apple Pay was used).
*/
applePaycard: {
};
applePaycard: {};
/**
* Information about 3D Secure card used to complete a payment (if 3D Secure was used).
@@ -140,7 +139,7 @@ export interface PaymentUIResult {
* @description
* This plugin enables the use of the Braintree Drop-In Payments UI in your Ionic applications on Android and iOS, using the native Drop-In UI for each platform (not the Javascript SDK).
*
* Ionic Native utilizes [a maintaned fork](https://github.com/taracque/cordova-plugin-braintree) of the original `cordova-plugin-braintree`
* Ionic Native utilizes [a maintained fork](https://github.com/taracque/cordova-plugin-braintree) of the original `cordova-plugin-braintree`
*
* For information on how to use Apple Pay with this plugin, please refer to the [plugin documentation](https://github.com/Taracque/cordova-plugin-braintree#apple-pay-ios-only)
*
@@ -201,23 +200,25 @@ export interface PaymentUIResult {
pluginRef: 'BraintreePlugin',
repo: 'https://github.com/taracque/cordova-plugin-braintree',
platforms: ['Android', 'iOS'],
install: 'ionic cordova plugin add https://github.com/taracque/cordova-plugin-braintree',
installVariables: [],
install:
'ionic cordova plugin add https://github.com/taracque/cordova-plugin-braintree',
installVariables: []
})
@Injectable()
export class Braintree extends IonicNativePlugin {
/**
* Used to initialize the Braintree client. This function must be called before other methods can be used.
* As the initialize code is async, be sure you call all Braintree related methods after the initialize promise has resolved.
*
* @param token {string} The client token or tokenization key to use with the Braintree client.
* @param {string} token The client token or tokenization key to use with the Braintree client.
* @return {Promise<undefined | string>} Returns a promise that resolves with undefined on successful initialization, or rejects with a string message describing the failure.
*/
@Cordova({
platforms: ['Android', 'iOS'],
platforms: ['Android', 'iOS']
})
initialize(token: string): Promise<undefined | string> { return; }
initialize(token: string): Promise<undefined | string> {
return;
}
/**
* Used to configure Apple Pay on iOS.
@@ -228,13 +229,15 @@ export class Braintree extends IonicNativePlugin {
*
* Calling this function on Android is a `noop` so you can call it without having to check which cordova platform you are on! :D
*
* @param options {ApplePayOptions} The options used to configure Apple Pay.
* @param {ApplePayOptions}options The options used to configure Apple Pay.
* @return {Promise<undefined | string>} Returns a promise that resolves with undefined on successful initialization, or rejects with a string message describing the failure.
*/
@Cordova({
platforms: ['iOS'],
platforms: ['iOS']
})
setupApplePay(options: ApplePayOptions): Promise<undefined | string> { return; }
setupApplePay(options: ApplePayOptions): Promise<undefined | string> {
return;
}
/**
* Shows Braintree's Drop-In Payments UI.
@@ -244,7 +247,11 @@ export class Braintree extends IonicNativePlugin {
* @return {Promise<PaymentUIResult | string>} Returns a promise that resolves with a PaymentUIResult object on successful payment (or the user cancels), or rejects with a string message describing the failure.
*/
@Cordova({
platforms: ['Android', 'iOS'],
platforms: ['Android', 'iOS']
})
presentDropInPaymentUI(options?: PaymentUIOptions): Promise<PaymentUIResult | string> { return; }
presentDropInPaymentUI(
options?: PaymentUIOptions
): Promise<PaymentUIResult | string> {
return;
}
}

View File

@@ -33,7 +33,7 @@ export class Brightness extends IonicNativePlugin {
/**
* Sets the brightness of the display.
*
* @param value {number} Floating number between 0 and 1 in which case 1 means 100% brightness and 0 means 0% brightness.
* @param {number} value Floating number between 0 and 1 in which case 1 means 100% brightness and 0 means 0% brightness.
* @returns {Promise<any>} Returns a Promise that resolves if setting brightness was successful.
*/
@Cordova()
@@ -54,6 +54,7 @@ export class Brightness extends IonicNativePlugin {
/**
* Keeps the screen on. Prevents the device from setting the screen to sleep.
* @param {boolean} value
*/
@Cordova()
setKeepScreenOn(value: boolean): void {}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
@@ -32,10 +32,9 @@ import { Observable } from 'rxjs/Observable';
})
@Injectable()
export class Broadcaster extends IonicNativePlugin {
/**
* This function listen to an event sent from the native code
* @param eventName {string}
* @param {string} eventName
* @return {Observable<any>} Returns an observable to watch when an event is received
*/
@Cordova({
@@ -43,15 +42,18 @@ export class Broadcaster extends IonicNativePlugin {
clearFunction: 'removeEventListener',
clearWithArgs: true
})
addEventListener(eventName: string): Observable<any> { return; }
addEventListener(eventName: string): Observable<any> {
return;
}
/**
* This function sends data to the native code
* @param eventName {string}
* @param eventData {any}
* @param {string} eventName
* @param {any} eventData
* @return {Promise<any>} Returns a promise that resolves when an event is successfully fired
*/
@Cordova()
fireNativeEvent(eventName: string, eventData: any): Promise<any> { return; }
fireNativeEvent(eventName: string, eventData: any): Promise<any> {
return;
}
}

View File

@@ -1,5 +1,5 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name Browser Tab
@@ -13,21 +13,13 @@ import { Injectable } from '@angular/core';
* constructor(private browserTab: BrowserTab) {
*
* browserTab.isAvailable()
* .then((isAvailable: boolean) => {
*
* .then(isAvailable => {
* if (isAvailable) {
*
* browserTab.openUrl('https://ionic.io');
*
* } else {
*
* // open URL with InAppBrowser instead or SafariViewController
*
* }
*
* });
*
*
* }
*
* ```
@@ -41,13 +33,14 @@ import { Injectable } from '@angular/core';
})
@Injectable()
export class BrowserTab extends IonicNativePlugin {
/**
* Check if BrowserTab option is available
* @return {Promise<any>} Returns a promise that resolves when check is successful and returns true or false
*/
@Cordova()
isAvailable(): Promise<any> { return; }
isAvailable(): Promise<any> {
return;
}
/**
* Opens the provided URL using a browser tab
@@ -55,12 +48,16 @@ export class BrowserTab extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise that resolves when check open was successful
*/
@Cordova()
openUrl(url: string): Promise<any> { return; }
openUrl(url: string): Promise<any> {
return;
}
/**
* Closes browser tab
* @return {Promise<any>} Returns a promise that resolves when close was finished
*/
@Cordova()
close(): Promise<any> { return; }
close(): Promise<any> {
return;
}
}

View File

@@ -93,7 +93,7 @@ export class Calendar extends IonicNativePlugin {
* This function checks if we have permission to read/write from/to the calendar.
* The promise will resolve with `true` when:
* - You're running on iOS, or
* - You're targetting API level lower than 23, or
* - You're targeting API level lower than 23, or
* - You're using Android < 6, or
* - You've already granted permission
*
@@ -184,7 +184,7 @@ export class Calendar extends IonicNativePlugin {
}
/**
* Returns options for a custom calender with sepcific colord
* Returns options for a custom calender with specific color
*
* @return {NameOrOptions} Returns an object with the default options
*/

View File

@@ -3,7 +3,7 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface CallLogObject {
name: string;
value: string|Array<string>;
value: string | Array<string>;
operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'like';
}
@@ -35,7 +35,7 @@ export interface CallLogObject {
export class CallLog extends IonicNativePlugin {
/**
* This function return the call logs
* @param filters {CallLogObject[]} array of object to filter the query
* @param {CallLogObject[]} filters array of object to filter the query
* @return {Promise<any>}
*/
@Cordova()

View File

@@ -33,8 +33,8 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export class CallNumber extends IonicNativePlugin {
/**
* Calls a phone number
* @param numberToCall {string} The phone number to call as a string
* @param bypassAppChooser {boolean} Set to true to bypass the app chooser and go directly to dialer
* @param {string} numberToCall The phone number to call as a string
* @param {boolean} bypassAppChooser Set to true to bypass the app chooser and go directly to dialer
* @return {Promise<any>}
*/
@Cordova({

View File

@@ -40,7 +40,7 @@ export interface CameraPreviewOptions {
/** Tap to set specific focus point. Note, this assumes the camera is full-screen. default false */
tapToFocus?: boolean;
/** On Android disable automatic rotation of the image and stripping of Exif header. default false */
/** On Android disable automatic rotation of the image and stripping of Exit header. default false */
disableExifHeaderStripping?: boolean;
}
@@ -234,7 +234,7 @@ export class CameraPreview extends IonicNativePlugin {
/**
* Take the picture (base64)
* @param [options] {CameraPreviewPictureOptions} size and quality of the picture to take
* @param {CameraPreviewPictureOptions} [options] size and quality of the picture to take
* @return {Promise<any>}
*/
@Cordova({
@@ -293,7 +293,7 @@ export class CameraPreview extends IonicNativePlugin {
/**
* Set the preview Size
* @param [dimensions] {CameraPreviewDimensions}
* @param {CameraPreviewDimensions} [dimensions]
* @return {Promise<any>}
*/
@Cordova({
@@ -315,7 +315,7 @@ export class CameraPreview extends IonicNativePlugin {
/**
* Set the focus mode
* @param [focusMode] {string} 'fixed', 'auto', 'continuous-picture', 'continuous-video' (iOS & Android), 'edof', 'infinity', 'macro' (Android Only)
* @param {string} [focusMode] 'fixed', 'auto', 'continuous-picture', 'continuous-video' (iOS & Android), 'edof', 'infinity', 'macro' (Android Only)
* @return {Promise<any>}
*/
@Cordova({
@@ -345,8 +345,8 @@ export class CameraPreview extends IonicNativePlugin {
}
/**
* Set the flashmode
* @param [flashMode] {string} 'off' (iOS & Android), 'on' (iOS & Android), 'auto' (iOS & Android), 'torch' (Android)
* Set the flash mode
* @param {string} [flashMode] 'off' (iOS & Android), 'on' (iOS & Android), 'auto' (iOS & Android), 'torch' (Android)
* @return {Promise<any>}
*/
@Cordova({
@@ -395,7 +395,7 @@ export class CameraPreview extends IonicNativePlugin {
/**
* Set exposure mode
* @param [lock] {string}
* @param {string} [lock]
* @return {Promise<any>}
*/
@Cordova({
@@ -417,7 +417,7 @@ export class CameraPreview extends IonicNativePlugin {
/**
* Set exposure compensation (Android)
* @param [exposureCompensation] {number}
* @param {number} [exposureCompensation]
* @return {Promise<any>}
*/
@Cordova({
@@ -439,8 +439,8 @@ export class CameraPreview extends IonicNativePlugin {
/**
* Set specific focus point. Note, this assumes the camera is full-screen.
* @param xPoint {number}
* @param yPoint {number}
* @param {number} xPoint
* @param {number} yPoint
* @return {Promise<any>}
*/
@Cordova()
@@ -450,7 +450,7 @@ export class CameraPreview extends IonicNativePlugin {
/**
* Add a listener for the back event for the preview
* @return {Promise<any>} if backbutton pressed
* @return {Promise<any>} if back button pressed
*/
@Cordova()
onBackButton(): Promise<any> {

View File

@@ -126,7 +126,7 @@ export enum Direction {
* @description
* Take a photo or capture video.
*
* Requires and the Cordova plugin: `cordova-plugin-camera`. For more info, please see the [Cordova Camera Plugin Docs](https://github.com/apache/cordova-plugin-camera).
* Requires the Cordova plugin: `cordova-plugin-camera`. For more info, please see the [Cordova Camera Plugin Docs](https://github.com/apache/cordova-plugin-camera).
*
* @usage
* ```typescript

View File

@@ -1,8 +1,7 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface CardIOOptions {
/**
* Set to true to require expiry date
*/
@@ -21,7 +20,7 @@ export interface CardIOOptions {
/**
* Removes the keyboard button from the scan screen.
*/
supressManual?: boolean;
suppressManual?: boolean;
/**
* The postal code will only collect numeric input. Set this if you know the expected country's postal code has only numeric postal codes.
@@ -82,11 +81,9 @@ export interface CardIOOptions {
* Once a card image has been captured but before it has been processed, this value will determine whether to continue processing as usual.
*/
supressScan?: boolean;
}
export interface CardIOResponse {
/**
* Card type
*/
@@ -126,7 +123,6 @@ export interface CardIOResponse {
* Cardholder name
*/
cardholderName: string;
}
/**
@@ -173,7 +169,6 @@ export interface CardIOResponse {
})
@Injectable()
export class CardIO extends IonicNativePlugin {
/**
* Check whether card scanning is currently available. (May vary by
* device, OS version, network connectivity, etc.)
@@ -181,21 +176,26 @@ export class CardIO extends IonicNativePlugin {
* @returns {Promise<boolean>}
*/
@Cordova()
canScan(): Promise<boolean> { return; }
canScan(): Promise<boolean> {
return;
}
/**
* Scan a credit card with card.io.
* @param {CardIOOptions} options Options for configuring the plugin
* @param {CardIOOptions} [options] Options for configuring the plugin
* @returns {Promise<any>}
*/
@Cordova()
scan(options?: CardIOOptions): Promise<CardIOResponse> { return; }
scan(options?: CardIOOptions): Promise<CardIOResponse> {
return;
}
/**
* Retrieve the version of the card.io library. Useful when contacting support.
* @returns {Promise<string>}
*/
@Cordova()
version(): Promise<string> { return; }
version(): Promise<string> {
return;
}
}

View File

@@ -1,9 +1,18 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
namespace Http {
export const enum Verb {
GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH
GET,
HEAD,
POST,
PUT,
DELETE,
TRACE,
OPTIONS,
CONNECT,
PATCH
}
export interface Response {
@@ -13,7 +22,12 @@ namespace Http {
export interface Requester {
request(verb: Verb, url: string, callback: Callback<Response>): void;
request(verb: Verb, url: string, requestBody: string, callback: Callback<Response>): void;
request(
verb: Verb,
url: string,
requestBody: string,
callback: Callback<Response>
): void;
}
}
@@ -46,19 +60,26 @@ export interface IRemotePackage extends IPackage {
/**
* Downloads the package update from the CodePush service.
*
* @param downloadSuccess Called with one parameter, the downloaded package information, once the download completed successfully.
* @param downloadError Optional callback invoked in case of an error.
* @param downloadProgress Optional callback invoked during the download process. It is called several times with one DownloadProgress parameter.
* @param {SuccessCallback} downloadSuccess Called with one parameter, the downloaded package information, once the download completed successfully.
* @param {ErrorCallback} [downloadError] Optional callback invoked in case of an error.
* @param {SuccessCallback<DownloadProgress>} [downloadProgress] Optional callback invoked during the download process. It is called several times with one DownloadProgress parameter.
*/
download(downloadSuccess: SuccessCallback<ILocalPackage>, downloadError?: ErrorCallback, downloadProgress?: SuccessCallback<DownloadProgress>): void;
download(
downloadSuccess: SuccessCallback<ILocalPackage>,
downloadError?: ErrorCallback,
downloadProgress?: SuccessCallback<DownloadProgress>
): void;
/**
* Aborts the current download session, previously started with download().
*
* @param abortSuccess Optional callback invoked if the abort operation succeeded.
* @param abortError Optional callback invoked in case of an error.
* @param {SuccessCallback<void>} [abortSuccess] Optional callback invoked if the abort operation succeeded.
* @param {ErrorCallback} [abortError] Optional callback invoked in case of an error.
*/
abortDownload(abortSuccess?: SuccessCallback<void>, abortError?: ErrorCallback): void;
abortDownload(
abortSuccess?: SuccessCallback<void>,
abortError?: ErrorCallback
): void;
}
/**
@@ -82,11 +103,15 @@ export interface ILocalPackage extends IPackage {
* On the first run after the update, the application will wait for a codePush.notifyApplicationReady() call. Once this call is made, the install operation is considered a success.
* Otherwise, the install operation will be marked as failed, and the application is reverted to its previous version on the next run.
*
* @param installSuccess Callback invoked if the install operation succeeded.
* @param installError Optional callback inovoked in case of an error.
* @param installOptions Optional parameter used for customizing the installation behavior.
* @param {SuccessCallback<InstallMode>} installSuccess Callback invoked if the install operation succeeded.
* @param {ErrorCallback} [installError] Optional callback invoked in case of an error.
* @param {InstallOptions} [installOptions] Optional parameter used for customizing the installation behavior.
*/
install(installSuccess: SuccessCallback<InstallMode>, errorCallback?: ErrorCallback, installOptions?: InstallOptions): void;
install(
installSuccess: SuccessCallback<InstallMode>,
errorCallback?: ErrorCallback,
installOptions?: InstallOptions
): void;
}
/**
@@ -123,13 +148,19 @@ interface IPackageInfoMetadata extends ILocalPackage {
}
interface NativeUpdateNotification {
updateAppVersion: boolean; // Always true
updateAppVersion: boolean; // Always true
appVersion: string;
}
export interface Callback<T> { (error: Error, parameter: T): void; }
export interface SuccessCallback<T> { (result?: T): void; }
export interface ErrorCallback { (error?: Error): void; }
export interface Callback<T> {
(error: Error, parameter: T): void;
}
export interface SuccessCallback<T> {
(result?: T): void;
}
export interface ErrorCallback {
(error?: Error): void;
}
interface Configuration {
appVersion: string;
@@ -146,53 +177,80 @@ declare class AcquisitionStatus {
declare class AcquisitionManager {
constructor(httpRequester: Http.Requester, configuration: Configuration);
public queryUpdateWithCurrentPackage(currentPackage: IPackage, callback?: Callback<IRemotePackage | NativeUpdateNotification>): void;
public reportStatusDeploy(pkg?: IPackage, status?: string, previousLabelOrAppVersion?: string, previousDeploymentKey?: string, callback?: Callback<void>): void;
public queryUpdateWithCurrentPackage(
currentPackage: IPackage,
callback?: Callback<IRemotePackage | NativeUpdateNotification>
): void;
public reportStatusDeploy(
pkg?: IPackage,
status?: string,
previousLabelOrAppVersion?: string,
previousDeploymentKey?: string,
callback?: Callback<void>
): void;
public reportStatusDownload(pkg: IPackage, callback?: Callback<void>): void;
}
interface CodePushCordovaPlugin {
/**
* Get the current package information.
*
* @param packageSuccess Callback invoked with the currently deployed package information.
* @param packageError Optional callback invoked in case of an error.
*/
getCurrentPackage(packageSuccess: SuccessCallback<ILocalPackage>, packageError?: ErrorCallback): void;
getCurrentPackage(
packageSuccess: SuccessCallback<ILocalPackage>,
packageError?: ErrorCallback
): void;
/**
* Gets the pending package information, if any. A pending package is one that has been installed but the application still runs the old code.
* This happends only after a package has been installed using ON_NEXT_RESTART or ON_NEXT_RESUME mode, but the application was not restarted/resumed yet.
* This happens only after a package has been installed using ON_NEXT_RESTART or ON_NEXT_RESUME mode, but the application was not restarted/resumed yet.
*/
getPendingPackage(packageSuccess: SuccessCallback<ILocalPackage>, packageError?: ErrorCallback): void;
getPendingPackage(
packageSuccess: SuccessCallback<ILocalPackage>,
packageError?: ErrorCallback
): void;
/**
* Checks with the CodePush server if an update package is available for download.
*
* @param querySuccess Callback invoked in case of a successful response from the server.
* @param {SuccessCallback<IRemotePackage>} querySuccess Callback invoked in case of a successful response from the server.
* The callback takes one RemotePackage parameter. A non-null package is a valid update.
* A null package means the application is up to date for the current native application version.
* @param queryError Optional callback invoked in case of an error.
* @param deploymentKey Optional deployment key that overrides the config.xml setting.
* @param {ErrorCallback} [queryError] Optional callback invoked in case of an error.
* @param {string} [deploymentKey] Optional deployment key that overrides the config.xml setting.
*/
checkForUpdate(querySuccess: SuccessCallback<IRemotePackage>, queryError?: ErrorCallback, deploymentKey?: string): void;
checkForUpdate(
querySuccess: SuccessCallback<IRemotePackage>,
queryError?: ErrorCallback,
deploymentKey?: string
): void;
/**
* Notifies the plugin that the update operation succeeded and that the application is ready.
* Calling this function is required on the first run after an update. On every subsequent application run, calling this function is a noop.
* If using sync API, calling this function is not required since sync calls it internally.
*
* @param notifySucceeded Optional callback invoked if the plugin was successfully notified.
* @param notifyFailed Optional callback invoked in case of an error during notifying the plugin.
* @param {SuccessCallback<void>} [notifySucceeded] Optional callback invoked if the plugin was successfully notified.
* @param {ErrorCallback} [notifyFailed] Optional callback invoked in case of an error during notifying the plugin.
*/
notifyApplicationReady(notifySucceeded?: SuccessCallback<void>, notifyFailed?: ErrorCallback): void;
notifyApplicationReady(
notifySucceeded?: SuccessCallback<void>,
notifyFailed?: ErrorCallback
): void;
/**
* Reloads the application. If there is a pending update package installed using ON_NEXT_RESTART or ON_NEXT_RESUME modes, the update
* will be immediately visible to the user. Otherwise, calling this function will simply reload the current version of the application.
*
* @param {SuccessCallback<void>} installSuccess
* @param {ErrorCallback} [errorCallback]
*/
restartApplication(installSuccess: SuccessCallback<void>, errorCallback?: ErrorCallback): void;
restartApplication(
installSuccess: SuccessCallback<void>,
errorCallback?: ErrorCallback
): void;
/**
* Convenience method for installing updates in one method call.
@@ -209,13 +267,17 @@ interface CodePushCordovaPlugin {
* - If no update is available on the server, or if a previously rolled back update is available and the ignoreFailedUpdates is set to true, the syncCallback will be invoked with the SyncStatus.UP_TO_DATE.
* - If an error occurs during checking for update, downloading or installing it, the syncCallback will be invoked with the SyncStatus.ERROR.
*
* @param syncCallback Optional callback to be called with the status of the sync operation.
* @param {SuccessCallback<SyncStatus>} [syncCallback] Optional callback to be called with the status of the sync operation.
* The callback will be called only once, and the possible statuses are defined by the SyncStatus enum.
* @param syncOptions Optional SyncOptions parameter configuring the behavior of the sync operation.
* @param downloadProgress Optional callback invoked during the download process. It is called several times with one DownloadProgress parameter.
* @param {SyncOptions} [syncOptions] Optional SyncOptions parameter configuring the behavior of the sync operation.
* @param {SuccessCallback<DownloadProgress>} [downloadProgress] Optional callback invoked during the download process. It is called several times with one DownloadProgress parameter.
*
*/
sync(syncCallback?: SuccessCallback<SyncStatus>, syncOptions?: SyncOptions, downloadProgress?: SuccessCallback<DownloadProgress>): void;
sync(
syncCallback?: SuccessCallback<SyncStatus>,
syncOptions?: SyncOptions,
downloadProgress?: SuccessCallback<DownloadProgress>
): void;
}
/**
@@ -428,12 +490,9 @@ export interface DownloadProgress {
})
@Injectable()
export class CodePush extends IonicNativePlugin {
/**
* Get the current package information.
*
* @param packageSuccess Callback invoked with the currently deployed package information.
* @param packageError Optional callback invoked in case of an error.
* @returns {Promise<ILocalPackage>}
*/
@Cordova()
@@ -443,7 +502,7 @@ export class CodePush extends IonicNativePlugin {
/**
* Gets the pending package information, if any. A pending package is one that has been installed but the application still runs the old code.
* This happends only after a package has been installed using ON_NEXT_RESTART or ON_NEXT_RESUME mode, but the application was not restarted/resumed yet.
* This happens only after a package has been installed using ON_NEXT_RESTART or ON_NEXT_RESUME mode, but the application was not restarted/resumed yet.
* @returns {Promise<ILocalPackage>}
*/
@Cordova()
@@ -454,11 +513,7 @@ export class CodePush extends IonicNativePlugin {
/**
* Checks with the CodePush server if an update package is available for download.
*
* @param querySuccess Callback invoked in case of a successful response from the server.
* The callback takes one RemotePackage parameter. A non-null package is a valid update.
* A null package means the application is up to date for the current native application version.
* @param queryError Optional callback invoked in case of an error.
* @param deploymentKey Optional deployment key that overrides the config.xml setting.
* @param {string} [deploymentKey] Optional deployment key that overrides the config.xml setting.
* @returns {Promise<IRemotePackage>}
*/
@Cordova({
@@ -473,8 +528,6 @@ export class CodePush extends IonicNativePlugin {
* Calling this function is required on the first run after an update. On every subsequent application run, calling this function is a noop.
* If using sync API, calling this function is not required since sync calls it internally.
*
* @param notifySucceeded Optional callback invoked if the plugin was successfully notified.
* @param notifyFailed Optional callback invoked in case of an error during notifying the plugin.
* @returns {Promise<void>}
*/
@Cordova()
@@ -507,9 +560,8 @@ export class CodePush extends IonicNativePlugin {
* - If no update is available on the server, or if a previously rolled back update is available and the ignoreFailedUpdates is set to true, the syncCallback will be invoked with the SyncStatus.UP_TO_DATE.
* - If an error occurs during checking for update, downloading or installing it, the syncCallback will be invoked with the SyncStatus.ERROR.
*
* @param syncCallback Optional callback to be called with the status of the sync operation.
* @param syncOptions Optional SyncOptions parameter configuring the behavior of the sync operation.
* @param downloadProgress Optional callback invoked during the download process. It is called several times with one DownloadProgress parameter.
* @param {SyncOptions} [syncOptions] Optional SyncOptions parameter configuring the behavior of the sync operation.
* @param {SuccessCallback<DownloadProgress>} [downloadProgress] Optional callback invoked during the download process. It is called several times with one DownloadProgress parameter.
* @returns {Observable<SyncStatus>}
*
*/
@@ -518,8 +570,10 @@ export class CodePush extends IonicNativePlugin {
successIndex: 0,
errorIndex: 3 // we don't need this, so we set it to a value higher than # of args
})
sync(syncOptions?: SyncOptions, downloadProgress?: SuccessCallback<DownloadProgress>): Observable<SyncStatus> {
sync(
syncOptions?: SyncOptions,
downloadProgress?: SuccessCallback<DownloadProgress>
): Observable<SyncStatus> {
return;
}
}

View File

@@ -1,12 +1,47 @@
import { CordovaInstance, InstanceProperty, Plugin, getPromise, InstanceCheck, checkAvailability, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
import {
checkAvailability,
CordovaCheck,
CordovaInstance,
getPromise,
InstanceCheck,
InstanceProperty,
IonicNativePlugin,
Plugin
} from '@ionic-native/core';
declare const window: any,
navigator: any;
declare const window: any, navigator: any;
export type ContactFieldType = '*' | 'addresses' | 'birthday' | 'categories' | 'country' | 'department' | 'displayName' | 'emails' | 'name.familyName' | 'name.formatted' | 'name.givenName' | 'name.honorificPrefix' | 'name.honorificSuffix' | 'id' | 'ims' | 'locality' | 'name.middleName' | 'name' | 'nickname' | 'note' | 'organizations' | 'phoneNumbers' | 'photos' | 'postalCode' | 'region' | 'streetAddress' | 'title' | 'urls';
export type ContactFieldType =
| '*'
| 'addresses'
| 'birthday'
| 'categories'
| 'country'
| 'department'
| 'displayName'
| 'emails'
| 'name.familyName'
| 'name.formatted'
| 'name.givenName'
| 'name.honorificPrefix'
| 'name.honorificSuffix'
| 'id'
| 'ims'
| 'locality'
| 'name.middleName'
| 'name'
| 'nickname'
| 'note'
| 'organizations'
| 'phoneNumbers'
| 'photos'
| 'postalCode'
| 'region'
| 'streetAddress'
| 'title'
| 'urls';
export interface IContactProperties {
/** A globally unique identifier. */
id?: string;
@@ -48,7 +83,6 @@ export interface IContactProperties {
/** An array of web pages associated with the contact. */
urls?: IContactField[];
}
/**
@@ -74,7 +108,9 @@ export class Contact implements IContactProperties {
[key: string]: any;
constructor() {
if (checkAvailability('navigator.contacts', 'create', 'Contacts') === true) {
if (
checkAvailability('navigator.contacts', 'create', 'Contacts') === true
) {
this._objectInstance = navigator.contacts.create();
}
}
@@ -90,7 +126,9 @@ export class Contact implements IContactProperties {
}
@CordovaInstance()
remove(): Promise<any> { return; }
remove(): Promise<any> {
return;
}
@InstanceCheck()
save(): Promise<any> {
@@ -124,7 +162,7 @@ export declare const ContactError: {
PENDING_OPERATION_ERROR: number;
IO_ERROR: number;
NOT_SUPPORTED_ERROR: number;
PERMISSION_DENIED_ERROR: number
PERMISSION_DENIED_ERROR: number;
};
export interface IContactName {
@@ -146,12 +184,14 @@ export interface IContactName {
* @hidden
*/
export class ContactName implements IContactName {
constructor(public formatted?: string,
constructor(
public formatted?: string,
public familyName?: string,
public givenName?: string,
public middleName?: string,
public honorificPrefix?: string,
public honorificSuffix?: string) { }
public honorificSuffix?: string
) {}
}
export interface IContactField {
@@ -167,9 +207,11 @@ export interface IContactField {
* @hidden
*/
export class ContactField implements IContactField {
constructor(public type?: string,
constructor(
public type?: string,
public value?: string,
public pref?: boolean) { }
public pref?: boolean
) {}
}
export interface IContactAddress {
@@ -195,14 +237,16 @@ export interface IContactAddress {
* @hidden
*/
export class ContactAddress implements IContactAddress {
constructor(public pref?: boolean,
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 country?: string
) {}
}
export interface IContactOrganization {
@@ -228,7 +272,7 @@ export class ContactOrganization implements IContactOrganization {
public department?: string,
public title?: string,
public pref?: boolean
) { }
) {}
}
/** Search options to filter navigator.contacts. */
@@ -249,10 +293,12 @@ export interface IContactFindOptions {
* @hidden
*/
export class ContactFindOptions implements IContactFindOptions {
constructor(public filter?: string,
constructor(
public filter?: string,
public multiple?: boolean,
public desiredFields?: string[],
public hasPhoneNumber?: boolean) { }
public hasPhoneNumber?: boolean
) {}
}
/**
@@ -293,10 +339,19 @@ export class ContactFindOptions implements IContactFindOptions {
plugin: 'cordova-plugin-contacts',
pluginRef: 'navigator.contacts',
repo: 'https://github.com/apache/cordova-plugin-contacts',
platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Ubuntu', 'Windows', 'Windows 8', 'Windows Phone']
platforms: [
'Android',
'BlackBerry 10',
'Browser',
'Firefox OS',
'iOS',
'Ubuntu',
'Windows',
'Windows 8',
'Windows Phone'
]
})
export class Contacts extends IonicNativePlugin {
/**
* Create a single contact.
* @returns {Contact} Returns a Contact object
@@ -307,16 +362,24 @@ export class Contacts extends IonicNativePlugin {
/**
* Search for contacts in the Contacts list.
* @param fields {ContactFieldType[]} Contact fields to be used as a search qualifier
* @param options {IContactFindOptions} Optional options for the query
* @param {ContactFieldType[]} fields Contact fields to be used as a search qualifier
* @param {IContactFindOptions} [options] Optional options for the query
* @returns {Promise<Contact[]>} Returns a Promise that resolves with the search results (an array of Contact objects)
*/
@CordovaCheck()
find(fields: ContactFieldType[], options?: IContactFindOptions): Promise<Contact[]> {
find(
fields: ContactFieldType[],
options?: IContactFindOptions
): Promise<Contact[]> {
return getPromise((resolve: Function, reject: Function) => {
navigator.contacts.find(fields, (contacts: any[]) => {
resolve(contacts.map(processContact));
}, reject, options);
navigator.contacts.find(
fields,
(contacts: any[]) => {
resolve(contacts.map(processContact));
},
reject,
options
);
});
}
@@ -327,10 +390,12 @@ export class Contacts extends IonicNativePlugin {
@CordovaCheck()
pickContact(): Promise<Contact> {
return getPromise((resolve: Function, reject: Function) => {
navigator.contacts.pickContact((contact: any) => resolve(processContact(contact)), reject);
navigator.contacts.pickContact(
(contact: any) => resolve(processContact(contact)),
reject
);
});
}
}
/**

View File

@@ -38,8 +38,8 @@ export interface CropOptions {
export class Crop extends IonicNativePlugin {
/**
* Crops an image
* @param pathToImage
* @param options
* @param {string} pathToImage
* @param {CropOptions} [options]
* @returns {Promise<string>} Returns a promise that resolves with the new image path, or rejects if failed to crop.
*/
@Cordova({

View File

@@ -53,6 +53,7 @@ export class DeviceAccounts extends IonicNativePlugin {
/**
* Get all accounts registered on Android device for requested type
* @param {string} type
* @returns {Promise<AndroidAccount[]>}
*/
@Cordova()

View File

@@ -57,7 +57,7 @@ export class DeviceFeedback extends IonicNativePlugin {
/**
* Provide vibrate feedback to user, nevertheless respect user's tactile feedback setting as native feedback do.
* @param type {number} Specify type of vibration feedback. 0 for long press, 1 for virtual key, or 3 for keyboard tap.
* @param {number} type Specify type of vibration feedback. 0 for long press, 1 for virtual key, or 3 for keyboard tap.
*/
@Cordova({ sync: true })
haptic(type: number): void {}

View File

@@ -1,9 +1,8 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface DeviceOrientationCompassHeading {
/**
* The heading in degrees from 0-359.99 at a single moment in time. (Number)
*/
@@ -23,11 +22,9 @@ export interface DeviceOrientationCompassHeading {
* The time at which this heading was determined. (DOMTimeStamp)
*/
timestamp: number;
}
export interface DeviceOrientationCompassOptions {
/**
* How often to retrieve the compass heading in milliseconds. (Number) (Default: 100)
*/
@@ -37,7 +34,6 @@ export interface DeviceOrientationCompassOptions {
* The change in degrees required to initiate a watchHeading success callback. When this value is set, frequency is ignored. (Number)
*/
filter?: number;
}
/**
@@ -77,23 +73,35 @@ export interface DeviceOrientationCompassOptions {
plugin: 'cordova-plugin-device-orientation',
pluginRef: 'navigator.compass',
repo: 'https://github.com/apache/cordova-plugin-device-orientation',
platforms: ['Amazon Fire OS', 'Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone']
platforms: [
'Amazon Fire OS',
'Android',
'BlackBerry 10',
'Browser',
'Firefox OS',
'iOS',
'Tizen',
'Ubuntu',
'Windows',
'Windows Phone'
]
})
@Injectable()
export class DeviceOrientation extends IonicNativePlugin {
/**
* Get the current compass heading.
* @returns {Promise<DeviceOrientationCompassHeading>}
*/
@Cordova()
getCurrentHeading(): Promise<DeviceOrientationCompassHeading> { return; }
getCurrentHeading(): Promise<DeviceOrientationCompassHeading> {
return;
}
/**
* Get the device current heading at a regular interval
*
* Stop the watch by unsubscribing from the observable
* @param {DeviceOrientationCompassOptions} options Options for compass. Frequency and Filter. Optional
* @param {DeviceOrientationCompassOptions} [options] Options for compass. Frequency and Filter. Optional
* @returns {Observable<DeviceOrientationCompassHeading>} Returns an observable that contains the compass heading
*/
@Cordova({
@@ -101,6 +109,9 @@ export class DeviceOrientation extends IonicNativePlugin {
observable: true,
clearFunction: 'clearWatch'
})
watchHeading(options?: DeviceOrientationCompassOptions): Observable<DeviceOrientationCompassHeading> { return; }
watchHeading(
options?: DeviceOrientationCompassOptions
): Observable<DeviceOrientationCompassHeading> {
return;
}
}

View File

@@ -1,5 +1,10 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-native/core';
import {
Cordova,
CordovaProperty,
IonicNativePlugin,
Plugin
} from '@ionic-native/core';
/**
* @name Diagnostic
@@ -43,7 +48,6 @@ import { Cordova, Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-nati
})
@Injectable()
export class Diagnostic extends IonicNativePlugin {
permission = {
READ_CALENDAR: 'READ_CALENDAR',
WRITE_CALENDAR: 'WRITE_CALENDAR',
@@ -92,9 +96,23 @@ export class Diagnostic extends IonicNativePlugin {
CONTACTS: ['READ_CONTACTS', 'WRITE_CONTACTS', 'GET_ACCOUNTS'],
LOCATION: ['ACCESS_FINE_LOCATION', 'ACCESS_COARSE_LOCATION'],
MICROPHONE: ['RECORD_AUDIO'],
PHONE: ['READ_PHONE_STATE', 'CALL_PHONE', 'ADD_VOICEMAIL', 'USE_SIP', 'PROCESS_OUTGOING_CALLS', 'READ_CALL_LOG', 'WRITE_CALL_LOG'],
PHONE: [
'READ_PHONE_STATE',
'CALL_PHONE',
'ADD_VOICEMAIL',
'USE_SIP',
'PROCESS_OUTGOING_CALLS',
'READ_CALL_LOG',
'WRITE_CALL_LOG'
],
SENSORS: ['BODY_SENSORS'],
SMS: ['SEND_SMS', 'RECEIVE_SMS', 'READ_SMS', 'RECEIVE_WAP_PUSH', 'RECEIVE_MMS'],
SMS: [
'SEND_SMS',
'RECEIVE_SMS',
'READ_SMS',
'RECEIVE_WAP_PUSH',
'RECEIVE_MMS'
],
STORAGE: ['READ_EXTERNAL_STORAGE', 'WRITE_EXTERNAL_STORAGE']
};
@@ -141,7 +159,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
isLocationAvailable(): Promise<any> { return; }
isLocationAvailable(): Promise<any> {
return;
}
/**
* Checks if Wifi is connected/enabled. On iOS this returns true if the device is connected to a network by WiFi. On Android and Windows 10 Mobile this returns true if the WiFi setting is set to enabled.
@@ -149,17 +169,21 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
isWifiAvailable(): Promise<any> { return; }
isWifiAvailable(): Promise<any> {
return;
}
/**
* 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.
* cordova-plugin-camera@2.2+ requires both of these permissions. Defaults to true.
* @returns {Promise<any>}
*/
@Cordova({ callbackOrder: 'reverse' })
isCameraAvailable( externalStorage?: boolean ): Promise<any> { return; }
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)
@@ -167,57 +191,64 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
isBluetoothAvailable(): Promise<any> { return; }
isBluetoothAvailable(): Promise<any> {
return;
}
/**
* Displays the device location settings to allow user to enable location services/change location mode.
*/
@Cordova({ sync: true, platforms: ['Android', 'Windows 10', 'iOS'] })
switchToLocationSettings(): void { }
switchToLocationSettings(): void {}
/**
* Displays mobile settings to allow user to enable mobile data.
*/
@Cordova({ sync: true, platforms: ['Android', 'Windows 10'] })
switchToMobileDataSettings(): void { }
switchToMobileDataSettings(): void {}
/**
* Displays Bluetooth settings to allow user to enable Bluetooth.
*/
@Cordova({ sync: true, platforms: ['Android', 'Windows 10'] })
switchToBluetoothSettings(): void { }
switchToBluetoothSettings(): void {}
/**
* Displays WiFi settings to allow user to enable WiFi.
*/
@Cordova({ sync: true, platforms: ['Android', 'Windows 10'] })
switchToWifiSettings(): void { }
switchToWifiSettings(): void {}
/**
* Returns true if the WiFi setting is set to enabled, and is the same as `isWifiAvailable()`
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android', 'Windows 10'] })
isWifiEnabled(): Promise<boolean> { return; }
isWifiEnabled(): Promise<boolean> {
return;
}
/**
* Enables/disables WiFi on the device.
* Requires `ACCESS_WIFI_STATE` and `CHANGE_WIFI_STATE` permissions on Android
* @param state {boolean}
* @param {boolean} state
* @returns {Promise<any>}
*/
@Cordova({ callbackOrder: 'reverse', platforms: ['Android', 'Windows 10'] })
setWifiState(state: boolean): Promise<any> { return; }
setWifiState(state: boolean): Promise<any> {
return;
}
/**
* Enables/disables Bluetooth on the device.
* Requires `BLUETOOTH` and `BLUETOOTH_ADMIN` permissions on Android
* @param state {boolean}
* @param {boolean} state
* @returns {Promise<any>}
*/
@Cordova({ callbackOrder: 'reverse', platforms: ['Android', 'Windows 10'] })
setBluetoothState(state: boolean): Promise<any> { return; }
setBluetoothState(state: boolean): Promise<any> {
return;
}
// ANDROID AND IOS ONLY
@@ -226,7 +257,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
isLocationEnabled(): Promise<boolean> { return; }
isLocationEnabled(): Promise<boolean> {
return;
}
/**
* Checks if the application is authorized to use location.
@@ -234,14 +267,18 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
isLocationAuthorized(): Promise<any> { return; }
isLocationAuthorized(): Promise<any> {
return;
}
/**
* Returns the location authorization status for the application.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
getLocationAuthorizationStatus(): Promise<any> { return; }
getLocationAuthorizationStatus(): Promise<any> {
return;
}
/**
* Returns the location authorization status for the application.
@@ -251,14 +288,18 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'], callbackOrder: 'reverse' })
requestLocationAuthorization(mode?: string): Promise<any> { return; }
requestLocationAuthorization(mode?: string): Promise<any> {
return;
}
/**
* Checks if camera hardware is present on device.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
isCameraPresent(): Promise<any> { return; }
isCameraPresent(): Promise<any> {
return;
}
/**
* Checks if the application is authorized to use the camera.
@@ -268,7 +309,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'], callbackOrder: 'reverse' })
isCameraAuthorized( externalStorage?: boolean ): Promise<any> { return; }
isCameraAuthorized(externalStorage?: boolean): Promise<any> {
return;
}
/**
* Returns the camera authorization status for the application.
@@ -277,7 +320,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'], callbackOrder: 'reverse' })
getCameraAuthorizationStatus( externalStorage?: boolean ): Promise<any> { return; }
getCameraAuthorizationStatus(externalStorage?: boolean): Promise<any> {
return;
}
/**
* Requests camera authorization for the application.
@@ -286,49 +331,63 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'], callbackOrder: 'reverse' })
requestCameraAuthorization( externalStorage?: boolean ): Promise<any> { return; }
requestCameraAuthorization(externalStorage?: boolean): Promise<any> {
return;
}
/**
* Checks if the application is authorized to use the microphone.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
isMicrophoneAuthorized(): Promise<boolean> { return; }
isMicrophoneAuthorized(): Promise<boolean> {
return;
}
/**
* Returns the microphone authorization status for the application.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
getMicrophoneAuthorizationStatus(): Promise<any> { return; }
getMicrophoneAuthorizationStatus(): Promise<any> {
return;
}
/**
* Requests microphone authorization for the application.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
requestMicrophoneAuthorization(): Promise<any> { return; }
requestMicrophoneAuthorization(): Promise<any> {
return;
}
/**
* Checks if the application is authorized to use contacts (address book).
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
isContactsAuthorized(): Promise<boolean> { return; }
isContactsAuthorized(): Promise<boolean> {
return;
}
/**
* Returns the contacts authorization status for the application.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
getContactsAuthorizationStatus(): Promise<any> { return; }
getContactsAuthorizationStatus(): Promise<any> {
return;
}
/**
* Requests contacts authorization for the application.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
requestContactsAuthorization(): Promise<any> { return; }
requestContactsAuthorization(): Promise<any> {
return;
}
/**
* Checks if the application is authorized to use the calendar.
@@ -341,7 +400,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
isCalendarAuthorized(): Promise<boolean> { return; }
isCalendarAuthorized(): Promise<boolean> {
return;
}
/**
* Returns the calendar authorization status for the application.
@@ -355,7 +416,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
getCalendarAuthorizationStatus(): Promise<any> { return; }
getCalendarAuthorizationStatus(): Promise<any> {
return;
}
/**
* Requests calendar authorization for the application.
@@ -372,7 +435,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
requestCalendarAuthorization(): Promise<any> { return; }
requestCalendarAuthorization(): Promise<any> {
return;
}
/**
* Opens settings page for this app.
@@ -381,39 +446,44 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
switchToSettings(): Promise<any> { return; }
switchToSettings(): Promise<any> {
return;
}
/**
* Returns the state of Bluetooth on the device.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
getBluetoothState(): Promise<any> { return; }
getBluetoothState(): Promise<any> {
return;
}
/**
* Registers a function to be called when a change in Bluetooth state occurs.
* @param handler
* @param {Function} handler
*/
@Cordova({ platforms: ['Android', 'iOS'], sync: true })
registerBluetoothStateChangeHandler(handler: Function): void { }
registerBluetoothStateChangeHandler(handler: Function): void {}
/**
* Registers a function to be called when a change in Location state occurs.
* @param handler
* @param {Function} handler
*/
@Cordova({ platforms: ['Android', 'iOS'], sync: true })
registerLocationStateChangeHandler(handler: Function): void { }
registerLocationStateChangeHandler(handler: Function): void {}
// ANDROID ONLY
/**
* Checks if high-accuracy locations are available to the app from GPS hardware.
* Returns true if Location mode is enabled and is set to "Device only" or "High accuracy" AND if the app is authorised to use location.
* Returns true if Location mode is enabled and is set to "Device only" or "High accuracy" AND if the app is authorized to use location.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
isGpsLocationAvailable(): Promise<boolean> { return; }
isGpsLocationAvailable(): Promise<boolean> {
return;
}
/**
* Checks if location mode is set to return high-accuracy locations from GPS hardware.
@@ -423,15 +493,19 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'] })
isGpsLocationEnabled(): Promise<any> { return; }
isGpsLocationEnabled(): Promise<any> {
return;
}
/**
* Checks if low-accuracy locations are available to the app from network triangulation/WiFi access points.
* Returns true if Location mode is enabled and is set to "Battery saving" or "High accuracy" AND if the app is authorised to use location.
* Returns true if Location mode is enabled and is set to "Battery saving" or "High accuracy" AND if the app is authorized to use location.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'] })
isNetworkLocationAvailable(): Promise<any> { return; }
isNetworkLocationAvailable(): Promise<any> {
return;
}
/**
* Checks if location mode is set to return low-accuracy locations from network triangulation/WiFi access points.
@@ -441,50 +515,62 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'] })
isNetworkLocationEnabled(): Promise<any> { return; }
isNetworkLocationEnabled(): Promise<any> {
return;
}
/**
* Returns the current location mode setting for the device.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'] })
getLocationMode(): Promise<any> { return; }
getLocationMode(): Promise<any> {
return;
}
/**
* Returns the current authorisation status for a given permission.
* Returns the current authorization status for a given permission.
* Note: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return GRANTED status as permissions are already granted at installation time.
* @param permission
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'], callbackOrder: 'reverse' })
getPermissionAuthorizationStatus(permission: any): Promise<any> { return; }
getPermissionAuthorizationStatus(permission: any): Promise<any> {
return;
}
/**
* Returns the current authorisation status for multiple permissions.
* Returns the current authorization status for multiple permissions.
* Note: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return GRANTED status as permissions are already granted at installation time.
* @param permissions
* @param {any[]} permissions
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'], callbackOrder: 'reverse' })
getPermissionsAuthorizationStatus(permissions: any[]): Promise<any> { return; }
getPermissionsAuthorizationStatus(permissions: any[]): Promise<any> {
return;
}
/**
* Requests app to be granted authorisation for a runtime permission.
* Requests app to be granted authorization for a runtime permission.
* Note: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will have no effect as the permissions are already granted at installation time.
* @param permission
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'], callbackOrder: 'reverse' })
requestRuntimePermission(permission: any): Promise<any> { return; }
requestRuntimePermission(permission: any): Promise<any> {
return;
}
/**
* Requests app to be granted authorisation for multiple runtime permissions.
* Requests app to be granted authorization for multiple runtime permissions.
* Note: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return GRANTED status as permissions are already granted at installation time.
* @param permissions
* @param {any[]} permissions
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'], callbackOrder: 'reverse' })
requestRuntimePermissions(permissions: any[]): Promise<any> { return; }
requestRuntimePermissions(permissions: any[]): Promise<any> {
return;
}
/**
* Indicates if the plugin is currently requesting a runtime permission via the native API.
@@ -494,15 +580,19 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {boolean}
*/
@Cordova({ sync: true })
isRequestingPermission(): boolean { return; }
isRequestingPermission(): boolean {
return;
}
/**
* Registers a function to be called when a runtime permission request has completed.
* Pass in a falsey value to de-register the currently registered function.
* @param handler {Function}
* Pass in a falsy value to de-register the currently registered function.
* @param {Function} handler
*/
@Cordova({ sync: true })
registerPermissionRequestCompleteHandler(handler: Function): void { return; }
registerPermissionRequestCompleteHandler(handler: Function): void {
return;
}
/**
* Checks if the device setting for Bluetooth is switched on.
@@ -510,49 +600,63 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
isBluetoothEnabled(): Promise<boolean> { return; }
isBluetoothEnabled(): Promise<boolean> {
return;
}
/**
* Checks if the device has Bluetooth capabilities.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
hasBluetoothSupport(): Promise<boolean> { return; }
hasBluetoothSupport(): Promise<boolean> {
return;
}
/**
* Checks if the device has Bluetooth Low Energy (LE) capabilities.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
hasBluetoothLESupport(): Promise<boolean> { return; }
hasBluetoothLESupport(): Promise<boolean> {
return;
}
/**
* Checks if the device supports Bluetooth Low Energy (LE) Peripheral mode.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
hasBluetoothLEPeripheralSupport(): Promise<boolean> { return; }
hasBluetoothLEPeripheralSupport(): Promise<boolean> {
return;
}
/**
* Checks if the application is authorized to use external storage.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
isExternalStorageAuthorized(): Promise<boolean> { return; }
isExternalStorageAuthorized(): Promise<boolean> {
return;
}
/**
* CReturns the external storage authorization status for the application.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
getExternalStorageAuthorizationStatus(): Promise<any> { return; }
getExternalStorageAuthorizationStatus(): Promise<any> {
return;
}
/**
* Requests external storage authorization for the application.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'] })
requestExternalStorageAuthorization(): Promise<any> { return; }
requestExternalStorageAuthorization(): Promise<any> {
return;
}
/**
* Returns details of external SD card(s): absolute path, is writable, free space.
@@ -565,7 +669,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'] })
getExternalSdCardDetails(): Promise<any> { return; }
getExternalSdCardDetails(): Promise<any> {
return;
}
/**
* Switches to the wireless settings page in the Settings app. Allows configuration of wireless controls such as Wi-Fi, Bluetooth and Mobile networks.
@@ -574,7 +680,7 @@ export class Diagnostic extends IonicNativePlugin {
platforms: ['Android'],
sync: true
})
switchToWirelessSettings(): void { }
switchToWirelessSettings(): void {}
/**
* Displays NFC settings to allow user to enable NFC.
@@ -583,14 +689,16 @@ export class Diagnostic extends IonicNativePlugin {
platforms: ['Android'],
sync: true
})
switchToNFCSettings(): void { }
switchToNFCSettings(): void {}
/**
* Checks if NFC hardware is present on device.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
isNFCPresent(): Promise<boolean> { return; }
isNFCPresent(): Promise<boolean> {
return;
}
/**
* Checks if the device setting for NFC is switched on.
@@ -598,7 +706,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
isNFCEnabled(): Promise<boolean> { return; }
isNFCEnabled(): Promise<boolean> {
return;
}
/**
* Checks if NFC is available to the app. Returns true if the device has NFC capabilities AND if NFC setting is switched on.
@@ -606,39 +716,47 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android'] })
isNFCAvailable(): Promise<boolean> { return; }
isNFCAvailable(): Promise<boolean> {
return;
}
/**
* Registers a function to be called when a change in NFC state occurs. Pass in a falsey value to de-register the currently registered function.
* @param hander {Function} callback function to be called when NFC state changes
* Registers a function to be called when a change in NFC state occurs. Pass in a falsy value to de-register the currently registered function.
* @param {Function} hander callback function to be called when NFC state changes
* @returns {Promise<any>}
*/
@Cordova({
platforms: ['Android'],
sync: true
})
registerNFCStateChangeHandler(handler: Function): void { }
registerNFCStateChangeHandler(handler: Function): void {}
/**
* Checks if the device data roaming setting is enabled.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
isDataRoamingEnabled(): Promise<boolean> { return; }
isDataRoamingEnabled(): Promise<boolean> {
return;
}
/**
* Checks if the device setting for ADB(debug) is switched on.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
isADBModeEnabled(): Promise<boolean> { return; }
isADBModeEnabled(): Promise<boolean> {
return;
}
/**
* Checks if the device is rooted.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['Android'] })
isDeviceRooted(): Promise<boolean> { return; }
isDeviceRooted(): Promise<boolean> {
return;
}
// IOS ONLY
@@ -647,14 +765,18 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['iOS'] })
isCameraRollAuthorized(): Promise<boolean> { return; }
isCameraRollAuthorized(): Promise<boolean> {
return;
}
/**
* Returns the authorization status for the application to use the Camera Roll in Photos app.
* @returns {Promise<string>}
*/
@Cordova({ platforms: ['iOS'] })
getCameraRollAuthorizationStatus(): Promise<string> { return; }
getCameraRollAuthorizationStatus(): Promise<string> {
return;
}
/**
* Requests camera roll authorization for the application.
@@ -663,21 +785,27 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['iOS'] })
requestCameraRollAuthorization(): Promise<any> { return; }
requestCameraRollAuthorization(): Promise<any> {
return;
}
/**
* Checks if remote (push) notifications are enabled.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['iOS', 'Android'] })
isRemoteNotificationsEnabled(): Promise<boolean> { return; }
isRemoteNotificationsEnabled(): Promise<boolean> {
return;
}
/**
* Indicates if the app is registered for remote (push) notifications on the device.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['iOS'] })
isRegisteredForRemoteNotifications(): Promise<boolean> { return; }
isRegisteredForRemoteNotifications(): Promise<boolean> {
return;
}
/**
* Returns the authorization status for the application to use Remote Notifications.
@@ -685,7 +813,9 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<string>}
*/
@Cordova({ platforms: ['iOS'] })
getRemoteNotificationsAuthorizationStatus(): Promise<string> { return; }
getRemoteNotificationsAuthorizationStatus(): Promise<string> {
return;
}
/**
* Indicates the current setting of notification types for the app in the Settings app.
@@ -693,42 +823,54 @@ export class Diagnostic extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['iOS'] })
getRemoteNotificationTypes(): Promise<any> { return; }
getRemoteNotificationTypes(): Promise<any> {
return;
}
/**
* Checks if the application is authorized to use reminders.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['iOS'] })
isRemindersAuthorized(): Promise<boolean> { return; }
isRemindersAuthorized(): Promise<boolean> {
return;
}
/**
* Returns the reminders authorization status for the application.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['iOS'] })
getRemindersAuthorizationStatus(): Promise<any> { return; }
getRemindersAuthorizationStatus(): Promise<any> {
return;
}
/**
* Requests reminders authorization for the application.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['iOS'] })
requestRemindersAuthorization(): Promise<any> { return; }
requestRemindersAuthorization(): Promise<any> {
return;
}
/**
* Checks if the application is authorized for background refresh.
* @returns {Promise<boolean>}
*/
@Cordova({ platforms: ['iOS'] })
isBackgroundRefreshAuthorized(): Promise<boolean> { return; }
isBackgroundRefreshAuthorized(): Promise<boolean> {
return;
}
/**
* Returns the background refresh authorization status for the application.
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['iOS'] })
getBackgroundRefreshStatus(): Promise<any> { return; }
getBackgroundRefreshStatus(): Promise<any> {
return;
}
/**
* Requests Bluetooth authorization for the application.
@@ -737,14 +879,18 @@ export class Diagnostic extends IonicNativePlugin {
* @return {Promise<any>}
*/
@Cordova({ platforms: ['iOS'] })
requestBluetoothAuthorization(): Promise<any> { return; }
requestBluetoothAuthorization(): Promise<any> {
return;
}
/**
* Checks if motion tracking is available on the current device.
* @return {Promise<boolean>}
*/
@Cordova({ platforms: ['iOS'] })
isMotionAvailable(): Promise<boolean> { return; }
isMotionAvailable(): Promise<boolean> {
return;
}
/**
* Checks if it's possible to determine the outcome of a motion authorization request on the current device.
@@ -754,7 +900,9 @@ export class Diagnostic extends IonicNativePlugin {
* @return {Promise<boolean>}
*/
@Cordova({ platforms: ['iOS'] })
isMotionRequestOutcomeAvailable(): Promise<boolean> { return; }
isMotionRequestOutcomeAvailable(): Promise<boolean> {
return;
}
/**
* Requests motion tracking authorization for the application.
@@ -764,7 +912,9 @@ export class Diagnostic extends IonicNativePlugin {
* @return {Promise<string>}
*/
@Cordova({ platforms: ['iOS'] })
requestMotionAuthorization(): Promise<string> { return; }
requestMotionAuthorization(): Promise<string> {
return;
}
/**
* Checks motion authorization status for the application.
@@ -774,6 +924,7 @@ export class Diagnostic extends IonicNativePlugin {
* @return {Promise<string>}
*/
@Cordova({ platforms: ['iOS'] })
getMotionAuthorizationStatus(): Promise<string> { return; }
getMotionAuthorizationStatus(): Promise<string> {
return;
}
}

View File

@@ -1,9 +1,7 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
export interface DialogsPromptCallback {
/**
* The index of the pressed button. (Number) Note that the index uses one-based indexing, so the value is 1, 2, 3, etc.
*/
@@ -13,10 +11,8 @@ export interface DialogsPromptCallback {
* The text entered in the prompt dialog box. (String)
*/
input1: string;
}
/**
* @name Dialogs
* @description
@@ -50,47 +46,60 @@ export interface DialogsPromptCallback {
})
@Injectable()
export class Dialogs extends IonicNativePlugin {
/**
* Shows a custom alert or dialog box.
* @param {string} message Dialog message.
* @param {string} title Dialog title. (Optional, defaults to Alert)
* @param {string} buttonName Button name. (Optional, defaults to OK)
* @param {string} [title] Dialog title. (Optional, defaults to Alert)
* @param {string} [buttonName] Button name. (Optional, defaults to OK)
* @returns {Promise<any>} Returns a blank promise once the user has dismissed the alert.
*/
@Cordova({
successIndex: 1,
errorIndex: 4
})
alert(message: string, title?: string, buttonName?: string): Promise<any> { return; }
alert(message: string, title?: string, buttonName?: string): Promise<any> {
return;
}
/**
* Displays a customizable confirmation dialog box.
* @param {string} message Dialog message.
* @param {string} title Dialog title. (Optional, defaults to Confirm)
* @param {Array<string>} buttonLabels Array of strings specifying button labels. (Optional, defaults to [OK,Cancel])
* @param {string} [title] Dialog title. (Optional, defaults to Confirm)
* @param {Array<string>} [buttonLabels] Array of strings specifying button labels. (Optional, defaults to [OK,Cancel])
* @returns {Promise<number>} Returns a promise that resolves the button index that was clicked, or 0 if the user has dismissed the dialog by clicking outside the dialog box. Note that the index use one-based indexing.
*/
@Cordova({
successIndex: 1,
errorIndex: 4
})
confirm(message: string, title?: string, buttonLabels?: string[]): Promise<number> { return; }
confirm(
message: string,
title?: string,
buttonLabels?: string[]
): Promise<number> {
return;
}
/**
* Displays a native dialog box that is more customizable than the browser's prompt function.
* @param {string} message Dialog message.
* @param {string} title Dialog title. (Optional, defaults to Prompt)
* @param {Array<string>} buttonLabels Array of strings specifying button labels. (Optional, defaults to ["OK","Cancel"])
* @param {string} defaultText Default textbox input value. (Optional, Default: empty string)
* @param {string} [message] Dialog message.
* @param {string} [title] Dialog title. (Optional, defaults to Prompt)
* @param {Array<string>} [buttonLabels] Array of strings specifying button labels. (Optional, defaults to ["OK","Cancel"])
* @param {string} [defaultText] Default text box input value. (Optional, Default: empty string)
* @returns {Promise<DialogsPromptCallback>} Returns a promise that resolves an object with the button index clicked and the text entered
*/
@Cordova({
successIndex: 1,
errorIndex: 5
})
prompt(message?: string, title?: string, buttonLabels?: string[], defaultText?: string): Promise<DialogsPromptCallback> { return; }
prompt(
message?: string,
title?: string,
buttonLabels?: string[],
defaultText?: string
): Promise<DialogsPromptCallback> {
return;
}
/**
* The device plays a beep sound.
@@ -99,6 +108,5 @@ export class Dialogs extends IonicNativePlugin {
@Cordova({
sync: true
})
beep(times: number): void { }
beep(times: number): void {}
}

View File

@@ -1,14 +1,12 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
/**
* @name iOS DocumentPicker
* @description
*
* Opens the file picker on iOS for the user to select a file, returns a file URI.
* Allows the user to upload files from icloud
* Allows the user to upload files from iCloud
*
* @usage
* ```typescript
@@ -33,13 +31,13 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
})
@Injectable()
export class DocumentPicker extends IonicNativePlugin {
/**
* Open a file
* @param {string} filters files between 'image', 'pdf' or 'all'
* @param {string} [option] files between 'image', 'pdf' or 'all'
* @returns {Promise<string>}
*/
@Cordova()
getFile(options?: string): Promise<string> { return; }
getFile(option?: string): Promise<string> {
return;
}
}

View File

@@ -1,8 +1,12 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
import {
Cordova,
CordovaCheck,
IonicNativePlugin,
Plugin
} from '@ionic-native/core';
export interface EmailComposerOptions {
/**
* App to send the email with
*/
@@ -43,9 +47,12 @@ export interface EmailComposerOptions {
*/
isHtml?: boolean;
/**
* Content type of the email (Android only)
*/
type?: string;
}
/**
* @name Email Composer
* @description
@@ -106,15 +113,14 @@ export interface EmailComposerOptions {
plugin: 'cordova-plugin-email-composer',
pluginRef: 'cordova.plugins.email',
repo: 'https://github.com/katzer/cordova-plugin-email-composer',
platforms: ['Amazon Fire OS', 'Android', 'Browser', 'iOS', 'Windows']
platforms: ['Amazon Fire OS', 'Android', 'Browser', 'iOS', 'Windows', 'macOS']
})
@Injectable()
export class EmailComposer extends IonicNativePlugin {
/**
* Verifies if sending emails is supported on the device.
*
* @param [app] {string} App id or uri scheme.
* @param {string} [app] App id or uri scheme.
* @returns {Promise<any>} Resolves if available, rejects if not available
*/
@CordovaCheck()
@@ -148,7 +154,9 @@ export class EmailComposer extends IonicNativePlugin {
successIndex: 0,
errorIndex: 2
})
requestPermission(): Promise<boolean> { return; }
requestPermission(): Promise<boolean> {
return;
}
/**
* Checks if the app has a permission to access email accounts information
@@ -158,28 +166,31 @@ export class EmailComposer extends IonicNativePlugin {
successIndex: 0,
errorIndex: 2
})
hasPermission(): Promise<boolean> { return; }
hasPermission(): Promise<boolean> {
return;
}
/**
* Adds a new mail app alias.
*
* @param alias {string} The alias name
* @param packageName {string} The package name
* @param {string} alias The alias name
* @param {string} packageName The package name
*/
@Cordova()
addAlias(alias: string, packageName: string): void { }
addAlias(alias: string, packageName: string): void {}
/**
* Displays the email composer pre-filled with data.
*
* @param options {EmailComposerOptions} Email
* @param [scope] {any} Scope for the promise
* @param {EmailComposerOptions} options Email
* @param {any} [scope] Scope for the promise
* @returns {Promise<any>} Resolves promise when the EmailComposer has been opened
*/
@Cordova({
successIndex: 1,
errorIndex: 3
})
open(options: EmailComposerOptions, scope?: any): Promise<any> { return; }
open(options: EmailComposerOptions, scope?: any): Promise<any> {
return;
}
}

View File

@@ -1,9 +1,8 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface EstimoteBeaconRegion {
state?: string;
major: number;
@@ -13,7 +12,6 @@ export interface EstimoteBeaconRegion {
identifier?: string;
uuid: string;
}
/**
@@ -48,7 +46,6 @@ export interface EstimoteBeaconRegion {
})
@Injectable()
export class EstimoteBeacons extends IonicNativePlugin {
/** Proximity value */
ProximityUnknown = 0;
@@ -124,7 +121,9 @@ export class EstimoteBeacons extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
requestWhenInUseAuthorization(): Promise<any> { return; }
requestWhenInUseAuthorization(): Promise<any> {
return;
}
/**
* Ask the user for permission to use location services
@@ -145,7 +144,9 @@ export class EstimoteBeacons extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
requestAlwaysAuthorization(): Promise<any> { return; }
requestAlwaysAuthorization(): Promise<any> {
return;
}
/**
* Get the current location authorization status.
@@ -164,7 +165,9 @@ export class EstimoteBeacons extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
authorizationStatus(): Promise<any> { return; }
authorizationStatus(): Promise<any> {
return;
}
/**
* Start advertising as a beacon.
@@ -177,16 +180,23 @@ export class EstimoteBeacons extends IonicNativePlugin {
* EstimoteBeacons.stopAdvertisingAsBeacon().then((result) => { console.log('Beacon stopped'); });
* }, 5000);
* ```
* @param uuid {string} UUID string the beacon should advertise (mandatory).
* @param major {number} Major value to advertise (mandatory).
* @param minor {number} Minor value to advertise (mandatory).
* @param regionId {string} Identifier of the region used to advertise (mandatory).
* @param {string} uuid UUID string the beacon should advertise (mandatory).
* @param {number} major Major value to advertise (mandatory).
* @param {number} minor Minor value to advertise (mandatory).
* @param {string} regionId Identifier of the region used to advertise (mandatory).
* @returns {Promise<any>}
*/
@Cordova({
clearFunction: 'stopAdvertisingAsBeacon'
})
startAdvertisingAsBeacon(uuid: string, major: number, minor: number, regionId: string): Promise<any> { return; }
startAdvertisingAsBeacon(
uuid: string,
major: number,
minor: number,
regionId: string
): Promise<any> {
return;
}
/**
* Stop advertising as a beacon.
@@ -202,7 +212,9 @@ export class EstimoteBeacons extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
stopAdvertisingAsBeacon(): Promise<any> { return; }
stopAdvertisingAsBeacon(): Promise<any> {
return;
}
/**
* Enable analytics.
@@ -213,16 +225,18 @@ export class EstimoteBeacons extends IonicNativePlugin {
* ```
* EstimoteBeacons.enableAnalytics(true).then(() => { console.log('Analytics enabled'); });
* ```
* @param enable {number} Boolean value to turn analytics on or off (mandatory).
* @param {number} enable Boolean value to turn analytics on or off (mandatory).
* @returns {Promise<any>}
*/
@Cordova()
enableAnalytics(enable: boolean): Promise<any> { return; }
enableAnalytics(enable: boolean): Promise<any> {
return;
}
/**
* Test if analytics is enabled.
*
* @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}
* Test if analytics is enabled.
*
* @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}
*
* @usage
* ```
@@ -231,12 +245,14 @@ export class EstimoteBeacons extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
isAnalyticsEnabled(): Promise<any> { return; }
isAnalyticsEnabled(): Promise<any> {
return;
}
/**
* Test if App ID and App Token is set.
*
* @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}
* Test if App ID and App Token is set.
*
* @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}
*
* @usage
* ```
@@ -245,23 +261,27 @@ export class EstimoteBeacons extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
isAuthorized(): Promise<any> { return; }
isAuthorized(): Promise<any> {
return;
}
/**
* Set App ID and App Token.
*
* @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}
* Set App ID and App Token.
*
* @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}
*
* @usage
* ```
* EstimoteBeacons.setupAppIDAndAppToken('MyAppID', 'MyAppToken').then(() => { console.log('AppID and AppToken configured!'); });
* ```
* @param appID {string} The App ID (mandatory).
* @param appToken {string} The App Token (mandatory).
* @param {string} appID The App ID (mandatory).
* @param {string} appToken The App Token (mandatory).
* @returns {Promise<any>}
*/
@Cordova()
setupAppIDAndAppToken(appID: string, appToken: string): Promise<any> { return; }
setupAppIDAndAppToken(appID: string, appToken: string): Promise<any> {
return;
}
/**
* Start scanning for all nearby beacons using CoreBluetooth (no region object is used).
@@ -282,7 +302,9 @@ export class EstimoteBeacons extends IonicNativePlugin {
observable: true,
clearFunction: 'stopEstimoteBeaconDiscovery'
})
startEstimoteBeaconDiscovery(): Observable<any> { return; }
startEstimoteBeaconDiscovery(): Observable<any> {
return;
}
/**
* Stop CoreBluetooth scan. Available on iOS.
@@ -299,7 +321,9 @@ export class EstimoteBeacons extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
stopEstimoteBeaconDiscovery(): Promise<any> { return; }
stopEstimoteBeaconDiscovery(): Promise<any> {
return;
}
/**
* Start ranging beacons. Available on iOS and Android.
@@ -314,7 +338,7 @@ export class EstimoteBeacons extends IonicNativePlugin {
* EstimoteBeacons.stopRangingBeaconsInRegion(region).then(() => { console.log('scan stopped'); });
* }, 5000);
* ```
* @param region {EstimoteBeaconRegion} Dictionary with region properties (mandatory).
* @param {EstimoteBeaconRegion} region Dictionary with region properties (mandatory).
* @returns {Observable<any>} Returns an Observable that notifies of each beacon discovered.
*/
@Cordova({
@@ -322,7 +346,9 @@ export class EstimoteBeacons extends IonicNativePlugin {
clearFunction: 'stopRangingBeaconsInRegion',
clearWithArgs: true
})
startRangingBeaconsInRegion(region: EstimoteBeaconRegion): Observable<any> { return; }
startRangingBeaconsInRegion(region: EstimoteBeaconRegion): Observable<any> {
return;
}
/**
* Stop ranging beacons. Available on iOS and Android.
@@ -337,15 +363,17 @@ export class EstimoteBeacons extends IonicNativePlugin {
* EstimoteBeacons.stopRangingBeaconsInRegion(region).then(() => { console.log('scan stopped'); });
* }, 5000);
* ```
* @param region {EstimoteBeaconRegion} Dictionary with region properties (mandatory).
* @param {EstimoteBeaconRegion} region Dictionary with region properties (mandatory).
* @returns {Promise<any>}
*/
@Cordova()
stopRangingBeaconsInRegion(region: EstimoteBeaconRegion): Promise<any> { return; }
stopRangingBeaconsInRegion(region: EstimoteBeaconRegion): Promise<any> {
return;
}
/**
* Start ranging secure beacons. Available on iOS.
* This function has the same parameters/behaviour as
* This function has the same parameters/behavior as
* {@link EstimoteBeacons.startRangingBeaconsInRegion}.
* To use secure beacons set the App ID and App Token using
* {@link EstimoteBeacons.setupAppIDAndAppToken}.
@@ -356,16 +384,22 @@ export class EstimoteBeacons extends IonicNativePlugin {
clearFunction: 'stopRangingSecureBeaconsInRegion',
clearWithArgs: true
})
startRangingSecureBeaconsInRegion(region: EstimoteBeaconRegion): Observable<any> { return; }
startRangingSecureBeaconsInRegion(
region: EstimoteBeaconRegion
): Observable<any> {
return;
}
/**
* Stop ranging secure beacons. Available on iOS.
* This function has the same parameters/behaviour as
* This function has the same parameters/behavior as
* {@link EstimoteBeacons.stopRangingBeaconsInRegion}.
* @returns {Promise<any>}
*/
@Cordova()
stopRangingSecureBeaconsInRegion(region: EstimoteBeaconRegion): Promise<any> { return; }
stopRangingSecureBeaconsInRegion(region: EstimoteBeaconRegion): Promise<any> {
return;
}
/**
* Start monitoring beacons. Available on iOS and Android.
@@ -377,8 +411,8 @@ export class EstimoteBeacons extends IonicNativePlugin {
* console.log('Region state: ' + JSON.stringify(state));
* });
* ```
* @param region {EstimoteBeaconRegion} Dictionary with region properties (mandatory).
* @param [notifyEntryStateOnDisplay=false] {boolean} Set to true to detect if you
* @param {EstimoteBeaconRegion} region Dictionary with region properties (mandatory).
* @param {boolean} [notifyEntryStateOnDisplay] Set to true to detect if you
* are inside a region when the user turns display on, see
* {@link https://developer.apple.com/library/prerelease/ios/documentation/CoreLocation/Reference/CLBeaconRegion_class/index.html#//apple_ref/occ/instp/CLBeaconRegion/notifyEntryStateOnDisplay|iOS documentation}
* for further details (iOS only).
@@ -391,7 +425,12 @@ export class EstimoteBeacons extends IonicNativePlugin {
successIndex: 1,
errorIndex: 2
})
startMonitoringForRegion(region: EstimoteBeaconRegion, notifyEntryStateOnDisplay: boolean): Observable<any> { return; }
startMonitoringForRegion(
region: EstimoteBeaconRegion,
notifyEntryStateOnDisplay: boolean
): Observable<any> {
return;
}
/**
* Stop monitoring beacons. Available on iOS and Android.
@@ -401,21 +440,23 @@ export class EstimoteBeacons extends IonicNativePlugin {
* let region: EstimoteBeaconRegion = {} // Empty region matches all beacons.
* EstimoteBeacons.stopMonitoringForRegion(region).then(() => { console.log('monitoring is stopped'); });
* ```
* @param region {EstimoteBeaconRegion} Dictionary with region properties (mandatory).
* @param {EstimoteBeaconRegion} region Dictionary with region properties (mandatory).
* @returns {Promise<any>}
*/
@Cordova()
stopMonitoringForRegion(region: EstimoteBeaconRegion): Promise<any> { return; }
stopMonitoringForRegion(region: EstimoteBeaconRegion): Promise<any> {
return;
}
/**
* Start monitoring secure beacons. Available on iOS.
* This function has the same parameters/behaviour as
* This function has the same parameters/behavior as
* EstimoteBeacons.startMonitoringForRegion.
* To use secure beacons set the App ID and App Token using
* {@link EstimoteBeacons.setupAppIDAndAppToken}.
* @see {@link EstimoteBeacons.startMonitoringForRegion}
* @param region {EstimoteBeaconRegion} Region
* @param notifyEntryStateOnDisplay {boolean}
* @param {EstimoteBeaconRegion} region Region
* @param {boolean} notifyEntryStateOnDisplay
* @returns {Observable<any>}
*/
@Cordova({
@@ -425,17 +466,24 @@ export class EstimoteBeacons extends IonicNativePlugin {
successIndex: 1,
errorIndex: 2
})
startSecureMonitoringForRegion(region: EstimoteBeaconRegion, notifyEntryStateOnDisplay: boolean): Observable<any> { return; }
startSecureMonitoringForRegion(
region: EstimoteBeaconRegion,
notifyEntryStateOnDisplay: boolean
): Observable<any> {
return;
}
/**
* Stop monitoring secure beacons. Available on iOS.
* This function has the same parameters/behaviour as
* {@link EstimoteBeacons.stopMonitoringForRegion}.
* @param region {EstimoteBeaconRegion} Region
* @returns {Promise<any>}
*/
* Stop monitoring secure beacons. Available on iOS.
* This function has the same parameters/behavior as
* {@link EstimoteBeacons.stopMonitoringForRegion}.
* @param {EstimoteBeaconRegion} region Region
* @returns {Promise<any>}
*/
@Cordova()
stopSecureMonitoringForRegion(region: EstimoteBeaconRegion): Promise<any> { return; }
stopSecureMonitoringForRegion(region: EstimoteBeaconRegion): Promise<any> {
return;
}
/**
* Connect to Estimote Beacon. Available on Android.
@@ -451,11 +499,13 @@ export class EstimoteBeacons extends IonicNativePlugin {
* minor: 1
* });
* ```
* @param beacon {Beacon} Beacon to connect to.
* @param {Beacon} beacon Beacon to connect to.
* @returns {Promise<any>}
*/
@Cordova()
connectToBeacon(beacon: any): Promise<any> { return; }
connectToBeacon(beacon: any): Promise<any> {
return;
}
/**
* Disconnect from connected Estimote Beacon. Available on Android.
@@ -467,7 +517,9 @@ export class EstimoteBeacons extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
disconnectConnectedBeacon(): Promise<any> { return; }
disconnectConnectedBeacon(): Promise<any> {
return;
}
/**
* Write proximity UUID to connected Estimote Beacon. Available on Android.
@@ -477,11 +529,13 @@ export class EstimoteBeacons extends IonicNativePlugin {
* // Example that writes constant ESTIMOTE_PROXIMITY_UUID
* EstimoteBeacons.writeConnectedProximityUUID(ESTIMOTE_PROXIMITY_UUID);
*
* @param uuid {string} String to write as new UUID
* @param {string} uuid String to write as new UUID
* @returns {Promise<any>}
*/
@Cordova()
writeConnectedProximityUUID(uuid: any): Promise<any> { return; }
writeConnectedProximityUUID(uuid: any): Promise<any> {
return;
}
/**
* Write major to connected Estimote Beacon. Available on Android.
@@ -491,11 +545,13 @@ export class EstimoteBeacons extends IonicNativePlugin {
* // Example that writes 1
* EstimoteBeacons.writeConnectedMajor(1);
*
* @param major {number} number to write as new major
* @param {number} major number to write as new major
* @returns {Promise<any>}
*/
@Cordova()
writeConnectedMajor(major: number): Promise<any> { return; }
writeConnectedMajor(major: number): Promise<any> {
return;
}
/**
* Write minor to connected Estimote Beacon. Available on Android.
@@ -505,10 +561,11 @@ export class EstimoteBeacons extends IonicNativePlugin {
* // Example that writes 1
* EstimoteBeacons.writeConnectedMinor(1);
*
* @param minor {number} number to write as new minor
* @param {number} minor number to write as new minor
* @returns {Promise<any>}
*/
@Cordova()
writeConnectedMinor(minor: number): Promise<any> { return; }
writeConnectedMinor(minor: number): Promise<any> {
return;
}
}

View File

@@ -1,9 +1,8 @@
import { Plugin, IonicNativePlugin, Cordova } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface NotificationData {
/**
* Determines whether the notification was pressed or not
*/
@@ -15,7 +14,6 @@ export interface NotificationData {
*/
[name: string]: any;
}
/**
@@ -64,14 +62,15 @@ export interface NotificationData {
})
@Injectable()
export class FCM extends IonicNativePlugin {
/**
* Get's device's current registration id
* Gets device's current registration id
*
* @returns {Promise<string>} Returns a Promise that resolves with the registration id token
*/
@Cordova()
getToken(): Promise<string> { return; }
getToken(): Promise<string> {
return;
}
/**
* Event firing on the token refresh
@@ -81,7 +80,9 @@ export class FCM extends IonicNativePlugin {
@Cordova({
observable: true
})
onTokenRefresh(): Observable<string> { return; }
onTokenRefresh(): Observable<string> {
return;
}
/**
* Subscribes you to a [topic](https://firebase.google.com/docs/notifications/android/console-topics)
@@ -91,17 +92,21 @@ export class FCM extends IonicNativePlugin {
* @returns {Promise<any>} Returns a promise resolving in result of subscribing to a topic
*/
@Cordova()
subscribeToTopic(topic: string): Promise<any> { return; }
subscribeToTopic(topic: string): Promise<any> {
return;
}
/**
* Unubscribes you from a [topic](https://firebase.google.com/docs/notifications/android/console-topics)
* Unsubscribes 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()
unsubscribeFromTopic(topic: string): Promise<any> { return; }
unsubscribeFromTopic(topic: string): Promise<any> {
return;
}
/**
* Watch for incoming notifications
@@ -113,6 +118,7 @@ export class FCM extends IonicNativePlugin {
successIndex: 0,
errorIndex: 2
})
onNotification(): Observable<NotificationData> { return; }
onNotification(): Observable<NotificationData> {
return;
}
}

View File

@@ -1,5 +1,5 @@
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name File Encryption
@@ -30,23 +30,25 @@ import { Injectable } from '@angular/core';
})
@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
* Encrypt a file
* @param {string} file A string representing a local URI
* @param {string} key 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; }
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
* @param {string} file A string representing a local URI
* @param {string} key 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; }
decrypt(file: string, key: string): Promise<any> {
return;
}
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name File Opener
@@ -16,7 +16,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
*
* this.fileOpener.open('path/to/file.pdf', 'application/pdf')
* .then(() => console.log('File is opened'))
* .catch(e => console.log('Error openening file', e));
* .catch(e => console.log('Error opening file', e));
*
* ```
*/
@@ -29,11 +29,10 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
})
@Injectable()
export class FileOpener extends IonicNativePlugin {
/**
* Open an file
* @param filePath {string} File Path
* @param fileMIMEType {string} File MIME Type
* @param {string} filePath File Path
* @param {string} fileMIMEType File MIME Type
* @returns {Promise<any>}
*/
@Cordova({
@@ -41,11 +40,13 @@ export class FileOpener extends IonicNativePlugin {
successName: 'success',
errorName: 'error'
})
open(filePath: string, fileMIMEType: string): Promise<any> { return; }
open(filePath: string, fileMIMEType: string): Promise<any> {
return;
}
/**
* Uninstalls a package
* @param packageId {string} Package ID
* @param {string} packageId Package ID
* @returns {Promise<any>}
*/
@Cordova({
@@ -53,11 +54,13 @@ export class FileOpener extends IonicNativePlugin {
successName: 'success',
errorName: 'error'
})
uninstall(packageId: string): Promise<any> { return; }
uninstall(packageId: string): Promise<any> {
return;
}
/**
* Check if an app is already installed
* @param packageId {string} Package ID
* @param {string} packageId Package ID
* @returns {Promise<any>}
*/
@Cordova({
@@ -65,6 +68,7 @@ export class FileOpener extends IonicNativePlugin {
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, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
declare const window: any;
@@ -32,13 +32,13 @@ declare const window: any;
})
@Injectable()
export class FilePath extends IonicNativePlugin {
/**
* Resolve native path for given content URL/path.
* @param {String} path Content URL/path.
* @param {string} path Content URL/path.
* @returns {Promise<string>}
*/
@Cordova()
resolveNativePath(path: string): Promise<string> { return; }
resolveNativePath(path: string): Promise<string> {
return;
}
}

View File

@@ -24,7 +24,7 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
@Plugin({
pluginName: 'iOS File Picker',
plugin: 'cordova-plugin-filepicker',
pluginRef: 'filePicker',
pluginRef: 'FilePicker',
repo: 'https://github.com/jcesarmobile/FilePicker-Phonegap-iOS-Plugin',
platforms: ['iOS']
})

View File

@@ -1,8 +1,13 @@
import { Injectable } from '@angular/core';
import { CordovaInstance, Plugin, InstanceCheck, checkAvailability, IonicNativePlugin } from '@ionic-native/core';
import {
checkAvailability,
CordovaInstance,
InstanceCheck,
IonicNativePlugin,
Plugin
} from '@ionic-native/core';
export interface FileUploadOptions {
/**
* The name of the form element.
* Defaults to 'file'.
@@ -30,7 +35,7 @@ export interface FileUploadOptions {
/**
* A set of optional key/value pairs to pass in the HTTP request.
*/
params?: { [s: string]: any; };
params?: { [s: string]: any };
/**
* Whether to upload the data in chunked streaming mode.
@@ -43,12 +48,10 @@ export interface FileUploadOptions {
* than one value. On iOS, FireOS, and Android, if a header named
* Content-Type is present, multipart form data will NOT be used.
*/
headers?: { [s: string]: any; };
headers?: { [s: string]: any };
}
export interface FileUploadResult {
/**
* The number of bytes sent to the server as part of the upload.
*/
@@ -67,12 +70,10 @@ export interface FileUploadResult {
/**
* The HTTP response headers by the server.
*/
headers: { [s: string]: any; };
headers: { [s: string]: any };
}
export interface FileTransferError {
/**
* One of the predefined error codes listed below.
*/
@@ -103,7 +104,6 @@ export interface FileTransferError {
* Either e.getMessage or e.toString.
*/
exception: string;
}
/**
@@ -179,11 +179,18 @@ export interface FileTransferError {
plugin: 'cordova-plugin-file-transfer',
pluginRef: 'FileTransfer',
repo: 'https://github.com/apache/cordova-plugin-file-transfer',
platforms: ['Amazon Fire OS', 'Android', 'Browser', 'iOS', 'Ubuntu', 'Windows', 'Windows Phone']
platforms: [
'Amazon Fire OS',
'Android',
'Browser',
'iOS',
'Ubuntu',
'Windows',
'Windows Phone'
]
})
@Injectable()
export class FileTransfer extends IonicNativePlugin {
/**
* Error code rejected from upload with FileTransferError
* Defined in FileTransferError.
@@ -209,7 +216,6 @@ export class FileTransfer extends IonicNativePlugin {
create(): FileTransferObject {
return new FileTransferObject();
}
}
/**
@@ -223,7 +229,13 @@ export class FileTransferObject {
private _objectInstance: any;
constructor() {
if (checkAvailability(FileTransfer.getPluginRef(), null, FileTransfer.getPluginName()) === true) {
if (
checkAvailability(
FileTransfer.getPluginRef(),
null,
FileTransfer.getPluginName()
) === true
) {
this._objectInstance = new (FileTransfer.getPlugin())();
}
}
@@ -233,34 +245,48 @@ export class FileTransferObject {
*
* @param {string} fileUrl Filesystem URL representing the file on the device or a data URI. For backwards compatibility, this can also be the full path of the file on the device.
* @param {string} url URL of the server to receive the file, as encoded by encodeURI().
* @param {FileUploadOptions} options Optional parameters.
* @param {boolean} trustAllHosts Optional parameter, defaults to false. If set to true, it accepts all security certificates. This is useful since Android rejects self-signed security certificates. Not recommended for production use. Supported on Android and iOS.
* @param {FileUploadOptions} [options] Optional parameters.
* @param {boolean} [trustAllHosts] Optional parameter, defaults to false. If set to true, it accepts all security certificates. This is useful since Android rejects self-signed security certificates. Not recommended for production use. Supported on Android and iOS.
* @returns {Promise<FileUploadResult>} Returns a Promise that resolves to a FileUploadResult and rejects with FileTransferError.
*/
@CordovaInstance({
successIndex: 2,
errorIndex: 3
})
upload(fileUrl: string, url: string, options?: FileUploadOptions, trustAllHosts?: boolean): Promise<FileUploadResult> { return; }
upload(
fileUrl: string,
url: string,
options?: FileUploadOptions,
trustAllHosts?: boolean
): Promise<FileUploadResult> {
return;
}
/**
* Downloads a file from server.
*
* @param {string} source URL of the server to download the file, as encoded by encodeURI().
* @param {string} target Filesystem url representing the file on the device. For backwards compatibility, this can also be the full path of the file on the device.
* @param {boolean} trustAllHosts Optional parameter, defaults to false. If set to true, it accepts all security certificates. This is useful because Android rejects self-signed security certificates. Not recommended for production use. Supported on Android and iOS.
* @param {object} Optional parameters, currently only supports headers (such as Authorization (Basic Authentication), etc).
* @param {boolean} [trustAllHosts] Optional parameter, defaults to false. If set to true, it accepts all security certificates. This is useful because Android rejects self-signed security certificates. Not recommended for production use. Supported on Android and iOS.
* @param {object} [Optional] parameters, currently only supports headers (such as Authorization (Basic Authentication), etc).
* @returns {Promise<any>} Returns a Promise that resolves to a FileEntry object.
*/
@CordovaInstance({
successIndex: 2,
errorIndex: 3
})
download(source: string, target: string, trustAllHosts?: boolean, options?: { [s: string]: any; }): Promise<any> { return; }
download(
source: string,
target: string,
trustAllHosts?: boolean,
options?: { [s: string]: any }
): Promise<any> {
return;
}
/**
* Registers a listener that gets called whenever a new chunk of data is transferred.
* @param listener {function} Listener that takes a progress event.
* @param {Function} listener Listener that takes a progress event.
*/
@InstanceCheck({ sync: true })
onProgress(listener: (event: ProgressEvent) => any): void {

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface FingerprintOptions {
/**
@@ -66,20 +65,22 @@ export interface FingerprintOptions {
})
@Injectable()
export class FingerprintAIO extends IonicNativePlugin {
/**
* Check if fingerprint authentication is available
* @return {Promise<any>} Returns a promise with result
*/
@Cordova()
isAvailable(): Promise<any> { return; }
isAvailable(): Promise<any> {
return;
}
/**
* Show authentication dialogue
* @param options {FingerprintOptions} options for platform specific fingerprint API
* @return {Promise<any>} Returns a promise that resolves when authentication was successfull
* @param {FingerprintOptions} options Options for platform specific fingerprint API
* @return {Promise<any>} Returns a promise that resolves when authentication was successful
*/
@Cordova()
show(options: FingerprintOptions): Promise<any> { return; }
show(options: FingerprintOptions): Promise<any> {
return;
}
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @beta
@@ -35,51 +35,59 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
})
@Injectable()
export class FirebaseAnalytics extends IonicNativePlugin {
/**
* Logs an app event.
* Be aware of automatically collected events.
* @param name {string} The name of the event
* @param params {any} Some param to configure something
* @param {string} name The name of the event
* @param {any} params Some param to configure something
* @return {Promise<any>} Returns a promise
*/
@Cordova({ sync: true })
logEvent(name: string, params: any): Promise<any> { return; }
logEvent(name: string, params: any): Promise<any> {
return;
}
/**
* Sets the user ID property.
* This feature must be used in accordance with Google's Privacy Policy.
* @param id {string} The user ID
* @param {string} id The user ID
* @return {Promise<any>} Returns a promise
*/
@Cordova({ sync: true })
setUserId(id: string): Promise<any> { return; }
setUserId(id: string): Promise<any> {
return;
}
/**
* This feature must be used in accordance with Google's Privacy Policy.
* Be aware of automatically collected user properties.
* @param name {string} The property name
* @param value {string} The property value
* @param {string} name The property name
* @param {string} value The property value
* @return {Promise<any>} Returns a promise
*/
@Cordova({ sync: true })
setUserProperty(name: string, value: string): Promise<any> { return; }
setUserProperty(name: string, value: string): Promise<any> {
return;
}
/**
* Sets whether analytics collection is enabled for this app on this device.
* @param enabled {boolean}
* @param {boolean} enabled
* @return {Promise<any>} Returns a promise
*/
@Cordova({ sync: true })
setEnabled(enabled: boolean): Promise<any> { return; }
setEnabled(enabled: boolean): Promise<any> {
return;
}
/**
* Sets the current screen name, which specifies the current visual context in your app.
* This helps identify the areas in your app where users spend their time and how they interact with your app.
* @param name {string} The name of the screen
* @param {string} name The name of the screen
* @return {Promise<any>} Returns a promise
*/
@Cordova({ sync: true })
setCurrentScreen(name: string): Promise<any> { return; }
setCurrentScreen(name: string): Promise<any> {
return;
}
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
@@ -30,7 +30,7 @@ import { Observable } from 'rxjs/Observable';
plugin: 'cordova-plugin-firebase',
pluginRef: 'FirebasePlugin',
repo: 'https://github.com/arnesson/cordova-plugin-firebase',
platforms: ['Android', 'iOS'],
platforms: ['Android', 'iOS']
})
@Injectable()
export class Firebase extends IonicNativePlugin {
@@ -87,7 +87,7 @@ export class Firebase extends IonicNativePlugin {
/**
* Set icon badge number. Set to 0 to clear the badge.
* @param badgeNumber {number}
* @param {number} badgeNumber
* @return {Promise<any>}
*/
@Cordova()
@@ -106,7 +106,7 @@ export class Firebase extends IonicNativePlugin {
/**
* Subscribe to a topic
* @param topic {string}
* @param {string} topic
* @return {Promise<any>}
*/
@Cordova()
@@ -116,7 +116,7 @@ export class Firebase extends IonicNativePlugin {
/**
* Unsubscribe from a topic
* @param topic {string}
* @param {string} topic
* @return {Promise<any>}
*/
@Cordova()
@@ -135,8 +135,8 @@ export class Firebase extends IonicNativePlugin {
/**
* Log an event using Analytics
* @param type {string}
* @param data {Object}
* @param {string} type
* @param {Object} data
* @return {Promise<any>}
*/
@Cordova()
@@ -146,7 +146,7 @@ export class Firebase extends IonicNativePlugin {
/**
* Log an Error using FirebaseCrash
* @param message {string}
* @param {string} message
* @return {Promise<any>}
*/
@Cordova()
@@ -156,7 +156,7 @@ export class Firebase extends IonicNativePlugin {
/**
* Set the name of the current screen in Analytics
* @param name {string} Screen name
* @param {string} name Screen name
* @return {Promise<any>}
*/
@Cordova()
@@ -166,7 +166,7 @@ export class Firebase extends IonicNativePlugin {
/**
* Set a user id for use in Analytics
* @param userId {string}
* @param {string} userId
* @return {Promise<any>}
*/
@Cordova()
@@ -176,8 +176,8 @@ export class Firebase extends IonicNativePlugin {
/**
* Set a user property for use in Analytics
* @param name {string}
* @param value {string}
* @param {string} name
* @param {string} value
* @return {Promise<any>}
*/
@Cordova()
@@ -187,7 +187,7 @@ export class Firebase extends IonicNativePlugin {
/**
* Fetch Remote Config parameter values for your app
* @param cacheExpirationSeconds {number}
* @param {number} [cacheExpirationSeconds]
* @return {Promise<any>}
*/
@Cordova({
@@ -209,8 +209,8 @@ export class Firebase extends IonicNativePlugin {
/**
* Retrieve a Remote Config value
* @param key {string}
* @param [namespace] {string}
* @param {string} key
* @param {string} [namespace]
* @return {Promise<any>}
*/
@Cordova({
@@ -223,8 +223,8 @@ export class Firebase extends IonicNativePlugin {
/**
* Retrieve a Remote Config byte array
* @param key {string}
* @param [namespace] {string}
* @param {string} key
* @param {string} [namespace]
* @return {Promise<any>}
*/
@Cordova({
@@ -247,7 +247,7 @@ export class Firebase extends IonicNativePlugin {
/**
* Change the settings for the FirebaseRemoteConfig object's operations
* @param settings {Object}
* @param {Object} settings
* @return {Promise<any>}
*/
@Cordova({
@@ -259,8 +259,8 @@ export class Firebase extends IonicNativePlugin {
/**
* Set defaults in the Remote Config
* @param defaults {Object}
* @param [namespace] {string}
* @param {Object} defaults
* @param {string} [namespace]
* @return {Promise<any>}
*/
@Cordova({
@@ -272,7 +272,7 @@ export class Firebase extends IonicNativePlugin {
/**
* Sends an SMS to the user with the SMS verification code and returns the Verification ID required to sign in using phone authentication
* @param phoneNumber {string}
* @param {string} phoneNumber
* @returns {Promise<any>}
*/
@Cordova({
@@ -284,8 +284,8 @@ export class Firebase extends IonicNativePlugin {
/**
* Sends an SMS to the user with the SMS verification code and returns the Verification ID required to sign in using phone authentication
* @param phoneNumber {string} the phone number, including '+' and country code
* @param timeoutDuration {number} the timeout in sec - no more SMS will be sent to this number until this timeout expires
* @param {string} phoneNumber The phone number, including '+' and country code
* @param {number} timeoutDuration The timeout in sec - no more SMS will be sent to this number until this timeout expires
* @returns {Promise<any>}
*/
@Cordova({
@@ -293,13 +293,16 @@ export class Firebase extends IonicNativePlugin {
successIndex: 2,
errorIndex: 3
})
verifyPhoneNumber(phoneNumber: string, timeoutDuration: number): Promise<any> {
verifyPhoneNumber(
phoneNumber: string,
timeoutDuration: number
): Promise<any> {
return;
}
/**
* Allows the user to enable/disable analytics collection
* @param enabled {booleab} value to set collection
* @param {boolean} enabled value to set collection
* @returns {Promise<any>}
*/
@Cordova()

View File

@@ -1,5 +1,10 @@
import { Plugin, CordovaInstance, checkAvailability, IonicNativePlugin } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import {
checkAvailability,
CordovaInstance,
IonicNativePlugin,
Plugin
} from '@ionic-native/core';
export interface FlurryAnalyticsOptions {
/** Flurry API key is required */
@@ -73,16 +78,15 @@ export interface FlurryAnalyticsLocation {
}
/**
* @hidden
*/
* @hidden
*/
export class FlurryAnalyticsObject {
constructor(private _objectInstance: any) { }
constructor(private _objectInstance: any) {}
/**
* This function set the Event
* @param eventName {string} Name of the event
* @param [params] {Object} Optional params
* @param {string} eventName Name of the event
* @param {Object} [params] Optional params
* @return {Promise<any>} Returns a promise that resolves when event is sent
*/
@CordovaInstance({
@@ -95,8 +99,8 @@ export class FlurryAnalyticsObject {
/**
* Start a timed event
* @param eventName {string} Name of the event
* @param [params] {Object} Optional params
* @param {string} eventName Name of the event
* @param {Object} Optional params
* @return {Promise<any>} Returns a promise that resolves when timed event is started tracking
*/
@CordovaInstance({
@@ -109,8 +113,8 @@ export class FlurryAnalyticsObject {
/**
* Complete a timed event
* @param eventName {string} Name of the event
* @param [params] {Object} Optional params
* @param {string} eventName Name of the event
* @param {Object} [params] Optional params
* @return {Promise<any>} Returns a promise that resolves when timed event is ended tracking
*/
@CordovaInstance({
@@ -123,8 +127,8 @@ export class FlurryAnalyticsObject {
/**
* This function log an error
* @param code
* @param message
* @param {Object} code
* @param {Object} message
* @return {Promise<any>}
*/
@CordovaInstance()
@@ -144,12 +148,15 @@ export class FlurryAnalyticsObject {
/**
* This function set the location for the event
* (this is will only be used for very course grained statistics like city)
* @param location {FlurryAnalyticsLocation}
* @param message {string}
* @param {FlurryAnalyticsLocation} location
* @param {string} message
* @return {Promise<any>}
*/
@CordovaInstance()
setLocation(location: FlurryAnalyticsLocation, message: string): Promise<any> {
setLocation(
location: FlurryAnalyticsLocation,
message: string
): Promise<any> {
return;
}
@@ -172,7 +179,6 @@ export class FlurryAnalyticsObject {
endSession(): Promise<any> {
return;
}
}
/**
@@ -216,22 +222,24 @@ export class FlurryAnalyticsObject {
})
@Injectable()
export class FlurryAnalytics extends IonicNativePlugin {
/**
* Creates a new instance of FlurryAnalyticsObject
* @param options {FlurryAnalyticsOptions} options
* @param {FlurryAnalyticsOptions} options Options
* @return {FlurryAnalyticsObject}
*/
create(options: FlurryAnalyticsOptions): FlurryAnalyticsObject {
let instance: any;
if (checkAvailability(FlurryAnalytics.pluginRef, null, FlurryAnalytics.pluginName) === true) {
if (
checkAvailability(
FlurryAnalytics.pluginRef,
null,
FlurryAnalytics.pluginName
) === true
) {
instance = new (window as any).FlurryAnalytics(options);
}
return new FlurryAnalyticsObject(instance);
}
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs';
/**
@@ -32,18 +32,19 @@ import { Observable } from 'rxjs';
})
@Injectable()
export class FTP extends IonicNativePlugin {
/**
* Connect to one ftp server.
*
* Just need to init the connection once. If success, you can do any ftp actions later.
* @param hostname {string} The ftp server url. Like ip without protocol prefix, e.g. "192.168.1.1".
* @param username {string} The ftp login username. If it and `password` are all blank/undefined, the default username "anonymous" is used.
* @param password {string} The ftp login password. If it and `username` are all blank/undefined, the default password "anonymous@" is used.
* @return {Promise<any>} The success callback. Notice: For iOS, if triggered, means `init` success, but NOT means the later action, e.g. `ls`... `download` will success!
*/
* Connect to one ftp server.
*
* Just need to init the connection once. If success, you can do any ftp actions later.
* @param {string} hostname The ftp server url. Like ip without protocol prefix, e.g. "192.168.1.1".
* @param {string} username The ftp login username. If it and `password` are all blank/undefined, the default username "anonymous" is used.
* @param {string} password The ftp login password. If it and `username` are all blank/undefined, the default password "anonymous@" is used.
* @return {Promise<any>} The success callback. Notice: For iOS, if triggered, means `init` success, but NOT means the later action, e.g. `ls`... `download` will success!
*/
@Cordova()
connect(hostname: string, username: string, password: string): Promise<any> { return; }
connect(hostname: string, username: string, password: string): Promise<any> {
return;
}
/**
* List files (with info of `name`, `type`, `link`, `size`, `modifiedDate`) under one directory on the ftp server.
@@ -56,46 +57,54 @@ export class FTP extends IonicNativePlugin {
* - size: file size in bytes.
* - modifiedDate: modified date of this file. date format is `yyyy-MM-dd HH:mm:ss zzz`, e.g "2015-12-01 20:45:00 GMT+8".
*
* @param path {string} The path on the ftp server. e.g. "/adf/123/".
* @param {string} path The path on the ftp server. e.g. "/adf/123/".
* @return {Promise<any>} Returns a promise
*/
@Cordova()
ls(path: string): Promise<any> { return; }
ls(path: string): Promise<any> {
return;
}
/**
* Create one directory on the ftp server.
*
* @param path {string} The path on the ftp server. e.g. "/adf/123/".
* @param {string} path The path on the ftp server. e.g. "/adf/123/".
* @return {Promise<any>} Returns a promise
*/
@Cordova()
mkdir(path: string): Promise<any> { return; }
mkdir(path: string): Promise<any> {
return;
}
/**
* Delete one directory on the ftp server.
*
* Tip: As many ftp server could not rm dir when it's not empty, so rm all files under the dir at first is recommended.
*
* @param path {string} The file (with full path) you want to delete. e.g. "/adf/123/newDir/myFile".
* @param {string} path The file (with full path) you want to delete. e.g. "/adf/123/newDir/myFile".
* @return {Promise<any>} Returns a promise
*/
@Cordova()
rmdir(path: string): Promise<any> { return; }
rmdir(path: string): Promise<any> {
return;
}
/**
* Delete one file on the ftp server.
*
* @param file {string} The file (with full path) you want to delete. e.g. "/adf/123/newDir/myFile".
* @param {string} file The file (with full path) you want to delete. e.g. "/adf/123/newDir/myFile".
* @return {Promise<any>} Returns a promise
*/
@Cordova()
rm(file: string): Promise<any> { return; }
rm(file: string): Promise<any> {
return;
}
/**
* Upload one local file to the ftp server.
*
* @param localFile {string} The file (with full path) you want to upload. e.g. "/local/path/to/localFile".
* @param remoteFile {string} The file (with full path) you want to located on the ftp server. e.g. "/adf/123/newDir/remoteFile".
* @param {string} localFile The file (with full path) you want to upload. e.g. "/local/path/to/localFile".
* @param {string} remoteFile The file (with full path) you want to located on the ftp server. e.g. "/adf/123/newDir/remoteFile".
* @return {Observable<any>} Returns an observable.
* It will be triggered many times according the file's size.
* The arg `0`, `0.1xx`, `0.2xx` ... `1` means the upload percent. When it reach `1`, means success.
@@ -103,13 +112,15 @@ export class FTP extends IonicNativePlugin {
@Cordova({
observable: true
})
upload(localFile: string, remoteFile: string): Observable<any> { return; }
upload(localFile: string, remoteFile: string): Observable<any> {
return;
}
/**
* Download one remote file on the ftp server to local path.
*
* @param localFile {string} The file (with full path) you want to upload. e.g. "/local/path/to/localFile".
* @param remoteFile {string} The file (with full path) you want to located on the ftp server. e.g. "/adf/123/newDir/remoteFile".
* @param {string} localFile The file (with full path) you want to upload. e.g. "/local/path/to/localFile".
* @param {string} remoteFile The file (with full path) you want to located on the ftp server. e.g. "/adf/123/newDir/remoteFile".
* @return {Observable<any>} Returns an observable.
* It will be triggered many times according the file's size.
* The arg `0`, `0.1xx`, `0.2xx` ... `1` means the upload percent. When it reach `1`, means success.
@@ -117,7 +128,9 @@ export class FTP extends IonicNativePlugin {
@Cordova({
observable: true
})
download(localFile: string, remoteFile: string): Observable<any> { return; }
download(localFile: string, remoteFile: string): Observable<any> {
return;
}
/**
* Cancel all requests. Always success.
@@ -125,7 +138,9 @@ export class FTP extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise
*/
@Cordova()
cancel(): Promise<any> { return; }
cancel(): Promise<any> {
return;
}
/**
* Disconnect from ftp server.
@@ -133,6 +148,7 @@ export class FTP extends IonicNativePlugin {
* @return {Promise<any>} Returns a promise
*/
@Cordova()
disconnect(): Promise<any> { return; }
disconnect(): Promise<any> {
return;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,59 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
/**
* @name google-nearby
* @description
* This plugin adds support for the Google Nearby Messages API.
*
* @usage
* ```typescript
* import { GoogleNearby } from '@ionic-native/google-nearby';
*
*
* constructor(private googleNearby: GoogleNearby) { }
*
* this.googleNearby.publish('Hello')
* .then((res: any) => console.log(res))
* .catch((error: any) => console.error(error));
*
* this.googleNearby.subscribe()
* .then((res: any) => console.log(res))
* .catch((error: any) => console.error(error));
* ```
*/
@Plugin({
pluginName: 'GoogleNearby',
plugin: 'cordova-plugin-google-nearby',
pluginRef: 'window.nearby',
repo: 'https://github.com/hahahannes/cordova-plugin-google-nearby',
install: 'ionic cordova plugin add cordova-plugin-google-nearby --variable API_KEY="123456789"',
installVariables: ['API_KEY'],
platforms: ['Android']
})
@Injectable()
export class GoogleNearby extends IonicNativePlugin {
/**
* Publish a message
* @param message {string} Message to publish
* @return {Promise<any>} Returns a promise that resolves when the message got published
*/
@Cordova()
publish(message: string): Promise<any> {
return;
}
/**
* Subscribe to recieve messages
* @return {Observable<any>} Returns an observable that emits recieved messages
*/
@Cordova({
observable: true,
clearFunction: 'unsubscribe'
})
subscribe(): Observable<any> {
return;
}
}

View File

@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface ImageResizerOptions {
/**
@@ -7,6 +7,24 @@ export interface ImageResizerOptions {
*/
uri: string;
/**
* The name of the folder the image should be put
* (Android only)
*/
folderName?: string;
/**
* A custom name for the file. Default name is a timestamp. You have to set this value on iOS
*/
fileName?: string;
/**
*
* Quality given as Number for the quality of the new image
* (Android and iOS only)
*/
quality?: number;
/**
* The width of the new image
*/
@@ -18,22 +36,10 @@ export interface ImageResizerOptions {
height: number;
/**
* The name of the folder the image should be put
* (Android only)
* Whether or not to return a base64 encoded image string instead of the path to the resized image.
* iOS only
*/
folderName?: string;
/**
*
* 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. You have to set this value on iOS
*/
fileName?: string;
base64?: boolean;
}
/**
@@ -79,5 +85,7 @@ export class ImageResizer extends IonicNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
resize(options: ImageResizerOptions): Promise<any> { return; }
resize(options: ImageResizerOptions): Promise<any> {
return;
}
}

View File

@@ -22,7 +22,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
*
* if(this.launchReview.isRatingSupported()){
* this.launchReview.rating()
* .then(() => console.log('Successfully launched rating dialog');
* .then(() => console.log('Successfully launched rating dialog'));
* }
* ```
*/

View File

@@ -1,5 +1,5 @@
import { Plugin, IonicNativePlugin, Cordova } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export interface QRScannerStatus {
@@ -86,11 +86,6 @@ export interface QRScannerStatus {
* scanSub.unsubscribe(); // stop scanning
* });
*
* // show camera preview
* this.qrScanner.show();
*
* // wait for user to scan something, then the observable callback will be called
*
* } else if (status.denied) {
* // camera permission was permanently denied
* // you must use QRScanner.openSettings() method to guide the user to the settings page
@@ -115,7 +110,6 @@ export interface QRScannerStatus {
})
@Injectable()
export class QRScanner extends IonicNativePlugin {
/**
* Request permission to use QR scanner.
* @return {Promise<QRScannerStatus>}
@@ -123,7 +117,9 @@ export class QRScanner extends IonicNativePlugin {
@Cordova({
callbackStyle: 'node'
})
prepare(): Promise<QRScannerStatus> { return; }
prepare(): Promise<QRScannerStatus> {
return;
}
/**
* Call this method to enable scanning. You must then call the `show` method to make the camera preview visible.
@@ -134,21 +130,27 @@ export class QRScanner extends IonicNativePlugin {
observable: true,
clearFunction: 'cancelScan'
})
scan(): Observable<string> { return; }
scan(): Observable<string> {
return;
}
/**
* Configures the native webview to have a transparent background, then sets the background of the <body> and <html> DOM elements to transparent, allowing the webview to re-render with the transparent background.
* @returns {Promise<QRScannerStatus>}
*/
@Cordova()
show(): Promise<QRScannerStatus> { return; }
show(): Promise<QRScannerStatus> {
return;
}
/**
* Configures the native webview to be opaque with a white background, covering the video preview.
* @returns {Promise<QRScannerStatus>}
*/
@Cordova()
hide(): Promise<QRScannerStatus> { return; }
hide(): Promise<QRScannerStatus> {
return;
}
/**
* Enable the device's light (for scanning in low-light environments).
@@ -157,14 +159,18 @@ export class QRScanner extends IonicNativePlugin {
@Cordova({
callbackStyle: 'node'
})
enableLight(): Promise<QRScannerStatus> { return; }
enableLight(): Promise<QRScannerStatus> {
return;
}
/**
* Destroy the scanner instance.
* @returns {Promise<QRScannerStatus>}
*/
@Cordova()
destroy(): Promise<QRScannerStatus> { return; }
destroy(): Promise<QRScannerStatus> {
return;
}
/**
* Disable the device's light.
@@ -173,7 +179,9 @@ export class QRScanner extends IonicNativePlugin {
@Cordova({
callbackStyle: 'node'
})
disableLight(): Promise<QRScannerStatus> { return; }
disableLight(): Promise<QRScannerStatus> {
return;
}
/**
* Use front camera
@@ -182,7 +190,9 @@ export class QRScanner extends IonicNativePlugin {
@Cordova({
callbackStyle: 'node'
})
useFrontCamera(): Promise<QRScannerStatus> { return; }
useFrontCamera(): Promise<QRScannerStatus> {
return;
}
/**
* Use back camera
@@ -191,7 +201,9 @@ export class QRScanner extends IonicNativePlugin {
@Cordova({
callbackStyle: 'node'
})
useBackCamera(): Promise<QRScannerStatus> { return; }
useBackCamera(): Promise<QRScannerStatus> {
return;
}
/**
* Set camera to be used.
@@ -201,28 +213,36 @@ export class QRScanner extends IonicNativePlugin {
@Cordova({
callbackStyle: 'node'
})
useCamera(camera: number): Promise<QRScannerStatus> { return; }
useCamera(camera: number): Promise<QRScannerStatus> {
return;
}
/**
* Pauses the video preview on the current frame and pauses scanning.
* @return {Promise<QRScannerStatus>}
*/
@Cordova()
pausePreview(): Promise<QRScannerStatus> { return; }
pausePreview(): Promise<QRScannerStatus> {
return;
}
/**
* Resumse the video preview and resumes scanning.
* @return {Promise<QRScannerStatus>}
*/
@Cordova()
resumePreview(): Promise<QRScannerStatus> { return; }
resumePreview(): Promise<QRScannerStatus> {
return;
}
/**
* Returns permission status
* @return {Promise<QRScannerStatus>}
*/
@Cordova()
getStatus(): Promise<QRScannerStatus> { return; }
getStatus(): Promise<QRScannerStatus> {
return;
}
/**
* Opens settings to edit app permissions.
@@ -231,5 +251,4 @@ export class QRScanner extends IonicNativePlugin {
sync: true
})
openSettings(): void {}
}

View File

@@ -1,28 +1,23 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* Options for sending an SMS
*/
export interface SmsOptions {
/**
* Set to true to replace \n by a new line. Default: false
*/
replaceLineBreaks?: boolean;
android?: SmsOptionsAndroid;
}
export interface SmsOptionsAndroid {
/**
* Set to "INTENT" to send SMS with the native android SMS messaging. Leaving it empty will send the SMS without opening any app.
*/
intent?: string;
}
/**
@@ -57,7 +52,6 @@ export interface SmsOptionsAndroid {
})
@Injectable()
export class SMS extends IonicNativePlugin {
/**
* Sends sms to a number
* @param phoneNumber {string|Array<string>} Phone number
@@ -73,7 +67,9 @@ export class SMS extends IonicNativePlugin {
phoneNumber: string | string[],
message: string,
options?: SmsOptions
): Promise<any> { return; }
): Promise<any> {
return;
}
/**
* This function lets you know if the app has permission to send SMS
@@ -82,6 +78,7 @@ export class SMS extends IonicNativePlugin {
@Cordova({
platforms: ['Android']
})
hasPermission(): Promise<boolean> { return; }
hasPermission(): Promise<boolean> {
return;
}
}

View File

@@ -1,6 +1,5 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name Social Sharing
@@ -53,7 +52,14 @@ export class SocialSharing extends IonicNativePlugin {
successIndex: 4,
errorIndex: 5
})
share(message?: string, subject?: string, file?: string | string[], url?: string): Promise<any> { return; }
share(
message?: string,
subject?: string,
file?: string | string[],
url?: string
): Promise<any> {
return;
}
/**
* Shares using the share sheet with additional options and returns a result object or an error message (requires plugin version 5.1.0+)
@@ -63,7 +69,15 @@ export class SocialSharing extends IonicNativePlugin {
@Cordova({
platforms: ['iOS', 'Android']
})
shareWithOptions(options: { message?: string, subject?: string, files?: string | string[], url?: string, chooserTitle?: string }): Promise<any> { return; }
shareWithOptions(options: {
message?: string;
subject?: string;
files?: string | string[];
url?: string;
chooserTitle?: string;
}): Promise<any> {
return;
}
/**
* Checks if you can share via a specific app.
@@ -79,7 +93,15 @@ export class SocialSharing extends IonicNativePlugin {
errorIndex: 6,
platforms: ['iOS', 'Android']
})
canShareVia(appName: string, message?: string, subject?: string, image?: string, url?: string): Promise<any> { return; }
canShareVia(
appName: string,
message?: string,
subject?: string,
image?: string,
url?: string
): Promise<any> {
return;
}
/**
* Shares directly to Twitter
@@ -93,7 +115,9 @@ export class SocialSharing extends IonicNativePlugin {
errorIndex: 4,
platforms: ['iOS', 'Android']
})
shareViaTwitter(message: string, image?: string, url?: string): Promise<any> { return; }
shareViaTwitter(message: string, image?: string, url?: string): Promise<any> {
return;
}
/**
* Shares directly to Facebook
@@ -107,8 +131,13 @@ export class SocialSharing extends IonicNativePlugin {
errorIndex: 4,
platforms: ['iOS', 'Android']
})
shareViaFacebook(message: string, image?: string, url?: string): Promise<any> { return; }
shareViaFacebook(
message: string,
image?: string,
url?: string
): Promise<any> {
return;
}
/**
* Shares directly to Facebook with a paste message hint
@@ -123,7 +152,14 @@ export class SocialSharing extends IonicNativePlugin {
errorIndex: 5,
platforms: ['iOS', 'Android']
})
shareViaFacebookWithPasteMessageHint(message: string, image?: string, url?: string, pasteMessageHint?: string): Promise<any> { return; }
shareViaFacebookWithPasteMessageHint(
message: string,
image?: string,
url?: string,
pasteMessageHint?: string
): Promise<any> {
return;
}
/**
* Shares directly to Instagram
@@ -134,7 +170,9 @@ export class SocialSharing extends IonicNativePlugin {
@Cordova({
platforms: ['iOS', 'Android']
})
shareViaInstagram(message: string, image: string): Promise<any> { return; }
shareViaInstagram(message: string, image: string): Promise<any> {
return;
}
/**
* Shares directly to WhatsApp
@@ -148,7 +186,13 @@ export class SocialSharing extends IonicNativePlugin {
errorIndex: 4,
platforms: ['iOS', 'Android']
})
shareViaWhatsApp(message: string, image?: string, url?: string): Promise<any> { return; }
shareViaWhatsApp(
message: string,
image?: string,
url?: string
): Promise<any> {
return;
}
/**
* Shares directly to a WhatsApp Contact
@@ -163,7 +207,14 @@ export class SocialSharing extends IonicNativePlugin {
errorIndex: 5,
platforms: ['iOS', 'Android']
})
shareViaWhatsAppToReceiver(receiver: string, message: string, image?: string, url?: string): Promise<any> { return; }
shareViaWhatsAppToReceiver(
receiver: string,
message: string,
image?: string,
url?: string
): Promise<any> {
return;
}
/**
* Share via SMS
@@ -174,7 +225,9 @@ export class SocialSharing extends IonicNativePlugin {
@Cordova({
platforms: ['iOS', 'Android']
})
shareViaSMS(messge: string, phoneNumber: string): Promise<any> { return; }
shareViaSMS(messge: string, phoneNumber: string): Promise<any> {
return;
}
/**
* Checks if you can share via email
@@ -183,7 +236,9 @@ export class SocialSharing extends IonicNativePlugin {
@Cordova({
platforms: ['iOS', 'Android']
})
canShareViaEmail(): Promise<any> { return; }
canShareViaEmail(): Promise<any> {
return;
}
/**
* Share via Email
@@ -200,7 +255,16 @@ export class SocialSharing extends IonicNativePlugin {
successIndex: 6,
errorIndex: 7
})
shareViaEmail(message: string, subject: string, to: string[], cc?: string[], bcc?: string[], files?: string | string[]): Promise<any> { return; }
shareViaEmail(
message: string,
subject: string,
to: string[],
cc?: string[],
bcc?: string[],
files?: string | string[]
): Promise<any> {
return;
}
/**
* Share via AppName
@@ -216,7 +280,15 @@ export class SocialSharing extends IonicNativePlugin {
errorIndex: 6,
platforms: ['iOS', 'Android']
})
shareVia(appName: string, message: string, subject?: string, image?: string, url?: string): Promise<any> { return; }
shareVia(
appName: string,
message: string,
subject?: string,
image?: string,
url?: string
): Promise<any> {
return;
}
/**
* defines the popup position before call the share method.
@@ -226,5 +298,17 @@ export class SocialSharing extends IonicNativePlugin {
sync: true,
platforms: ['iOS']
})
setIPadPopupCoordinates(targetBounds: string): void { }
setIPadPopupCoordinates(targetBounds: string): void {}
/**
* Save an array of images to the camera roll
* @param {string|string[]} fileOrFileArray Single or multiple files
* @returns {Promise<any> }
*/
@Cordova({
platforms: ['iOS']
})
saveToPhotoAlbum(fileOrFileArray: string | string[]): Promise<any> {
return;
}
}

View File

@@ -1,8 +1,10 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
import { Observable } from 'rxjs/Observable';
export type SpeechRecognitionListeningOptions = SpeechRecognitionListeningOptionsIOS | SpeechRecognitionListeningOptionsAndroid;
export type SpeechRecognitionListeningOptions =
| SpeechRecognitionListeningOptionsIOS
| SpeechRecognitionListeningOptionsAndroid;
export interface SpeechRecognitionListeningOptionsIOS {
/**
@@ -41,6 +43,11 @@ export interface SpeechRecognitionListeningOptionsAndroid {
* display listener popup window with prompt (default `true`)
*/
showPopup?: boolean;
/**
* Allow partial results to be returned (default `false`)
*/
showPartial?: boolean;
}
/**
@@ -101,7 +108,6 @@ export interface SpeechRecognitionListeningOptionsAndroid {
})
@Injectable()
export class SpeechRecognition extends IonicNativePlugin {
/**
* Check feature available
* @return {Promise<boolean>}
@@ -117,19 +123,18 @@ export class SpeechRecognition extends IonicNativePlugin {
*/
@Cordova({
callbackOrder: 'reverse',
observable: true,
observable: true
})
startListening(options?: SpeechRecognitionListeningOptions): Observable<Array<string>> {
startListening(
options?: SpeechRecognitionListeningOptions
): Observable<Array<string>> {
return;
}
/**
* Stop the recognition process
*/
@Cordova({
platforms: ['iOS']
})
@Cordova()
stopListening(): Promise<void> {
return;
}
@@ -160,5 +165,4 @@ export class SpeechRecognition extends IonicNativePlugin {
requestPermission(): Promise<void> {
return;
}
}

View File

@@ -13,12 +13,12 @@ import { Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-native/core';
*
* constructor(private uid: Uid, private androidPermissions: AndroidPermissions) { }
*
*
*
* async getImei() {
* const { hasPermission } = await this.androidPermissions.checkPermission(
* this.androidPermissions.PERMISSION.READ_PHONE_STATE
* );
*
*
* if (!hasPermission) {
* const result = await this.androidPermissions.requestPermission(
* this.androidPermissions.PERMISSION.READ_PHONE_STATE
@@ -27,11 +27,11 @@ import { Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-native/core';
* if (!result.hasPermission) {
* throw new Error('Permissions required');
* }
*
*
* // ok, a user gave us permission, we can get him identifiers after restart app
* return;
* }
*
*
* return this.uid.IMEI
* }
* ```
@@ -40,30 +40,23 @@ import { Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-native/core';
pluginName: 'Uid',
plugin: 'cordova-plugin-uid',
pluginRef: 'cordova.plugins.uid',
repo: 'https://github.com/hygieiasoft/cordova-plugin-uid',
repo: 'https://github.com/lionelhe/cordova-plugin-uid',
platforms: ['Android']
})
@Injectable()
export class Uid extends IonicNativePlugin {
/** Get the device Universally Unique Identifier (UUID). */
@CordovaProperty
UUID: string;
@CordovaProperty UUID: string;
/** Get the device International Mobile Station Equipment Identity (IMEI). */
@CordovaProperty
IMEI: string;
@CordovaProperty IMEI: string;
/** Get the device International mobile Subscriber Identity (IMSI). */
@CordovaProperty
IMSI: string;
@CordovaProperty IMSI: string;
/** Get the sim Integrated Circuit Card Identifier (ICCID). */
@CordovaProperty
ICCID: string;
@CordovaProperty ICCID: string;
/** Get the Media Access Control address (MAC). */
@CordovaProperty
MAC: string;
@CordovaProperty MAC: string;
}

View File

@@ -0,0 +1,40 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name Uptime
* @description
* This plugin return the device uptime, without sleep time.
*
* @usage
* ```typescript
* import { Uptime } from '@ionic-native/uptime';
*
* constructor(private uptime: Uptime) { }
*
* ...
*
* this.uptime.getUptime()
* .then(uptime => console.log(uptime))
* .catch(error => console.log(error));
*
* ```
*/
@Plugin({
pluginName: 'Uptime',
plugin: 'cordova-plugin-uptime',
pluginRef: 'Uptime',
repo: 'https://github.com/s1lviu/cordova-plugin-uptime',
platforms: ['Android', 'iOS']
})
@Injectable()
export class Uptime extends IonicNativePlugin {
/**
* This function return system uptime
* @return {Promise<string>} Returns a promise that return the uptime in milliseconds
*/
@Cordova()
getUptime(): Promise<string> {
return;
}
}