Compare commits

..

175 Commits

Author SHA1 Message Date
Ibby
0669ba5222 2.2.5 2016-10-27 09:17:35 -04:00
Ibby
bec0eac122 style(): tslint 2016-10-27 09:17:11 -04:00
Daniel Flood
00e63d9fc8 docs(youtube-video-player): fix typo (#747)
Changed YouTubeVideoPlayer.openVideo to YoutubeVideoPlayer.openVideo  (notice the T in Youtube).
2016-10-27 09:15:03 -04:00
Ibby
ac181c5439 fix(nfc): fix Ndef class
closes #713
2016-10-27 08:24:28 -04:00
Ibby
8fbf1f2b34 feat(sms): add hasPermission method
closes #721
2016-10-27 08:14:47 -04:00
Ibby
685ac5c7a0 refractor(contacts): export ContactError
closes #731
2016-10-27 08:11:45 -04:00
Ibby
634843e1b2 Merge branch 'master' of github.com:driftyco/ionic-native 2016-10-27 08:09:46 -04:00
Ibby
d5310b0f73 fix(geolocation): fix watchPosition return type
closes #741
2016-10-27 08:09:36 -04:00
Ibby
a72cd59b99 fix(sqlite): fix callback issue with transaction method
closes #732
2016-10-27 08:00:47 -04:00
Ibby
6f4737190b fix(sqlite): check if plugin exists before opening database 2016-10-27 08:00:47 -04:00
Ibby
c98b4f4c85 fix(sqlite): check if plugin exists before opening database 2016-10-27 07:30:06 -04:00
Ibby
8f5532eb74 refractor(mixpanel): remove pluginMeta variable 2016-10-27 07:26:12 -04:00
Ibby
4340597fc9 Merge branch 'master' of github.com:driftyco/ionic-native 2016-10-27 07:25:22 -04:00
Andrew Cole
7324246e6a refractor(mixpanel): remove pluginMeta variable (#742)
Documentation doesn't specify the repo or the correct command for ionic plugin add ...
2016-10-27 07:25:12 -04:00
Ibby
55b6ab9c54 refractor(file): remove pluginMeta variable 2016-10-27 07:24:19 -04:00
Ibby
a5e591cfa6 refractor(googlemap): remove pluginMap constant 2016-10-27 07:23:13 -04:00
Ibby
48e5d46f1e refractor(googlemap): googlemaps.ts to googlemap.ts 2016-10-27 07:17:14 -04:00
Ibby
0388ac3f6b test(): fix tests 2016-10-27 06:59:00 -04:00
Ibby
24752652b7 style(): tslint 2016-10-27 06:40:22 -04:00
Ibby
eb03de96ba feat(diagnostic): add missing functions
closes #743
2016-10-27 06:38:46 -04:00
twaldecker
0317d4455f docs(transfer): add how-to download files (#745)
also add information how to browse your app
files directory, which is hard to find.
I needed very long time to check where my files are.
2016-10-27 06:30:02 -04:00
AndreasGassmann
757d0961b9 fix(3dtouch): add missing property (#739) 2016-10-24 16:12:01 -04:00
Ramon Henrique Ornelas
693ba01137 chore(location-accuracy): add name field (#724) 2016-10-22 13:19:49 -04:00
Ramon Henrique Ornelas
fa0175d248 chore(http): add name field (#725) 2016-10-22 13:19:43 -04:00
Ramon Henrique Ornelas
04d01ac1b3 chore(zbar): add name field see 96776567eb (#723) 2016-10-22 13:19:38 -04:00
Ramon Henrique Ornelas
77c7b9d00a chore(stepcounter): add name field (#726) 2016-10-22 13:19:32 -04:00
Ramon Henrique Ornelas
ee4cfadff1 chore(devicefeedback): add name field (#727) 2016-10-22 13:19:25 -04:00
Ramon Henrique Ornelas
49d8348db3 chore(themeable-browser): add name field (#728) 2016-10-22 13:19:19 -04:00
Ramon Henrique Ornelas
6e445b1beb chore(templates): add name field (#729) 2016-10-22 13:19:13 -04:00
Ramon Henrique Ornelas
1a803e70be refractor(filepath): add name field (#722) 2016-10-18 22:37:53 -04:00
Max Lynch
6982a2d35f chore(deeplinks): Updated Deeplinks docs 2016-10-18 12:22:09 -05:00
Colin Frick
0660a3bc67 feat(filepath): add cordova-plugin-filepath (#714) 2016-10-18 06:05:19 -04:00
Max Lynch
96776567eb feat(plugins): add name field 2016-10-17 20:38:25 -05:00
Matt Kane
d09018d2d4 docs(camera): correct costants paths (#706) 2016-10-17 05:34:16 -04:00
Ramon Henrique Ornelas
0649d8ca8c style(device-feedback): fix angular style (#703) 2016-10-16 03:00:27 -07:00
Ibby
41abaeb7c9 chore(): update changelog 2016-10-15 13:17:23 -04:00
Ibby
4dc82383a0 2.2.4 2016-10-15 13:17:06 -04:00
Ibrahim Hadeed
799e2f0b2e fix(sqlite): fix callback order for transaction (#700) 2016-10-15 07:41:46 -07:00
Ibrahim Hadeed
b95f88c165 feat(mixpanel): MixpanelPeople returns promises (#681)
* feat(mixpanel): make MixpanelPeople return promises

* remove decorator from people property

* add cordova decorator'

* test(mixpanel): add mixpanel tests

* test(mixpanel): remove unused imports

* fix(mixpanel): fix MixpanelPeople class

closes #667
2016-10-15 07:41:37 -07:00
Ibrahim Hadeed
bbda6e22a2 feat(device-feedback): add DeviceFeedback plugin (#696) 2016-10-15 07:41:06 -07:00
Ibby
3edfafb6f9 feat(image-picker): add new android methods 2016-10-15 07:40:22 -07:00
Ibby
99c1d499f7 chore(): update contributing guide 2016-10-14 08:12:35 -04:00
Ibby
37ed9a097a docs(toast): add interface to docs 2016-10-14 07:11:41 -04:00
Ibby
db3d5b63c6 docs(image-picker): add interface docs 2016-10-14 06:44:57 -04:00
Ibby
6521e1833c refractor(): change return type of configure 2016-10-14 06:43:02 -04:00
Ibby
debe6834ef chore(): update changelog 2016-10-14 06:06:49 -04:00
Ibby
292c8801ea Merge branch 'master' of https://github.com/driftyco/ionic-native 2016-10-14 06:06:31 -04:00
william
b031ceed99 docs(camera-preview): fix repo link (#695)
Breaking link to Repo.
2016-10-14 03:06:11 -07:00
Ibby
82d4ec2738 2.2.3 2016-10-14 06:03:59 -04:00
Ibby
9c55358620 Merge branch 'master' of https://github.com/driftyco/ionic-native 2016-10-13 19:15:46 -04:00
Ibby
51bc5ef542 docs(ble): update docs for isEnabled
closes #665
2016-10-13 19:15:38 -04:00
Colin Frick
74a252b324 fix(googlemaps): Expose 'type' property in GoogleMapsLatLngBounds #693 (#694) 2016-10-13 16:00:15 -07:00
Ramon Henrique Ornelas
43c8592b40 style(file): fix angular style (#685) 2016-10-12 19:52:27 -07:00
Ramon Henrique Ornelas
babfb0dca3 fix(onesignal): update to match latest API version (#691) 2016-10-12 19:51:57 -07:00
Ibby
ceb4217415 chore(): update changelog 2016-10-11 21:03:52 -04:00
Ibby
798625698d 2.2.2 2016-10-11 21:03:23 -04:00
Ibby
5cfb3b033b refractor(): remove unused import 2016-10-11 21:02:53 -04:00
Ibrahim Hadeed
95d666c348 Merge pull request #682 from driftyco/fix/file
fix(file): fix writeFile method
2016-10-11 18:01:55 -07:00
Ibby
276d61bf3a fix(file): read methods can accept Blobs too 2016-10-11 20:48:53 -04:00
Ibby
397a209ad2 docs(file): improve docs 2016-10-11 20:46:05 -04:00
Ibby
d2f42ef33a fix(file): getFreeDiskSpace now works 2016-10-11 20:44:27 -04:00
Ibby
fe46907aaa docs(file): document getFreeDiskspace 2016-10-11 20:39:26 -04:00
Ibby
5c92455ee9 feat(file): getFile and getDirectory are now public
closes #657
2016-10-11 20:30:14 -04:00
Ibby
046cbe7fca chore(): update changelog 2016-10-11 20:18:33 -04:00
Ibby
32f09275aa 2.2.1 2016-10-11 20:18:17 -04:00
Ibby
542ff4cf95 feat(file): resolveLocalFilesystemUrl and resolveDirectoryUrl are now public methods
closes #657
2016-10-11 20:16:39 -04:00
Ibby
5710eb78a8 fix(file): last parameter for writeFile now only accepts options 2016-10-11 20:13:21 -04:00
Ibby
842a80d493 fix(file): fix writeFile method
addresses #464 #552 #666
2016-10-11 20:10:47 -04:00
Ibby
c2d4f1c0da fix(location-accuracy): accuracy param is number
closes #676
2016-10-11 19:35:54 -04:00
Xueron Nee
e28e5b0f5f fix(themeablebrowser): add missed options (#680) 2016-10-11 16:33:35 -07:00
Job
bff4862979 fix(diagnostic): misspelled getContactsAuthorizationStatus method (#678) 2016-10-11 16:32:24 -07:00
Ibby
6bcef44d42 Merge branch 'master' of https://github.com/driftyco/ionic-native 2016-10-11 09:14:22 -04:00
Ibby
69c9b6f555 docs(): set ANDROID_THEMES to private 2016-10-11 09:14:17 -04:00
Ibby
7f38cb5a16 docs(datepicker): improve docs 2016-10-11 09:13:56 -04:00
Ramon Henrique Ornelas
cf7abe110d fix(http): export via window.IonicNative (#675)
* fix(http): fix export system module

* style(http): fix angular style

* style(http): delete multiline

* chore(http): add attribute platforms to decorator Plugin

* fix(http): typo param uploadFile()

* fix(http): typo commit ba6a7e9930
2016-10-11 03:25:15 -07:00
Ibby
5b060345d2 chore(): update changelog 2016-10-11 04:30:55 -04:00
Ibby
1784036ef7 chore(): update changelog 2016-10-11 04:22:46 -04:00
Ibby
7a8577007c 2.2.0 2016-10-11 04:19:02 -04:00
Ibrahim Hadeed
7c6e6d8b6b fix(onesignal): update to match latest api (#671)
closes #667
2016-10-11 01:12:43 -07:00
Ramon Henrique Ornelas
c5fd83ddb6 style(onesignal): add semicolon fix lint (#672) 2016-10-11 01:12:32 -07:00
Ramon Henrique Ornelas
7b2fe69c7c docs(camera-preview): change repo no longer maintaned fix #360
* docs(camera-preview): change repo no longer maintaned  fix #360

* refactor(camera-preview): delete dead code
2016-10-11 01:11:05 -07:00
Ibrahim Hadeed
f0961c7b23 feat(http): add cordovaHTTP wrapper (#674) 2016-10-11 01:06:41 -07:00
Ibby
35c8bbd49e fix(native-transitions): add missing interface properties 2016-10-10 20:50:10 -04:00
Ibby
1a343c1ea5 Merge branch 'master' of https://github.com/driftyco/ionic-native 2016-10-10 20:10:43 -04:00
Ibby
4fef8ff326 refractor(onesignal): add OneSignalNotification interface 2016-10-10 20:10:14 -04:00
Xueron Nee
13681756ae fix(thmeable-browser): fix the name of the plugin (#663) 2016-10-09 04:33:54 -04:00
Ibby
4a798281e4 chore(): update changelog 2016-10-08 20:57:54 -04:00
Ibby
79670b7878 2.1.9 2016-10-08 20:57:47 -04:00
Ibby
720084578d fix(paypal): add optional details param to paypalpayment 2016-10-08 20:44:32 -04:00
Patrick Bußmann
3dd6a92ccf fix(paypal): problems with selection of PayPal environment (#662)
* Fixed bugs with selection of environment and added missing prepareToRender function

* Updated PayPal usage example
2016-10-08 20:34:27 -04:00
Ramon Henrique Ornelas
7d1686ef93 refactor(googlemaps): throw warnings plugin_not_installed (#655)
* refactor(googlemaps): adjust imports to warnings console and delete @author comments

* refactor(googlemaps): throw warnings plugin_not_installed

* refactor(googlemaps): delete warnings of the methods added Promise.reject case plugin_not_instalet
2016-10-08 20:29:53 -04:00
Ibby
b40b0fff98 chore(): update changelog 2016-10-08 18:50:49 -04:00
Ibby
4dba0580ac 2.1.8 2016-10-08 18:50:36 -04:00
Ibby
11653ce752 fix(googlemaps): fixes GoogleMapsLatLng class
closes 658
2016-10-08 18:48:28 -04:00
Ramon Henrique Ornelas
d3e6f3ba41 refactor(plugin): improvement pull #654 (#661) 2016-10-08 15:07:01 -04:00
Thiery Laverdure
2c6cc37a5f docs(calendar): fix typo (#660) 2016-10-08 14:54:02 -04:00
Ibby
4c7defb2ec chore(): update changelog 2016-10-06 20:38:32 -04:00
Ibby
2da02e6d46 2.1.7 2016-10-06 20:38:21 -04:00
Ibby
7a91c87a72 test(): sync methods no longer get resolve/reject 2016-10-06 20:37:41 -04:00
Patrick Bußmann
598f8a9e7c fix(paypal): fixed currency code not found issue (#653) 2016-10-06 20:34:45 -04:00
ziggyJ
6f0f02bb66 fix google maps setPadding not working issue #573 (#654) 2016-10-06 20:33:42 -04:00
Ramon Henrique Ornelas
e4bde77bd4 chore(): deleted ionic-gulp-tslint change for gulp-tslint directly (#611) 2016-10-06 00:37:34 -04:00
Ibby
c24b331866 chore(): update changelog 2016-10-06 00:27:24 -04:00
Ibby
4ac348bd0f 2.1.6 2016-10-06 00:27:04 -04:00
Ibby
f0026572e7 fix(paypal): fix helper classes 2016-10-06 00:26:59 -04:00
Ibby
e30ccabf7b 2.1.5 2016-10-05 23:19:55 -04:00
Ibby
6b286db51a chore(): add successIndex at the correct position if we have optional params 2016-10-05 23:19:45 -04:00
Ibby
d79d62bfa0 docs(hotspot): remove unecessary doc tags 2016-10-05 22:46:22 -04:00
Ibby
2bdd3a3868 chore(): update changelog 2016-10-05 22:43:59 -04:00
Ibby
09d481e1d6 2.1.4 2016-10-05 22:43:31 -04:00
Ibby
6f23bef5d1 fix(google-analytics): specify successIndex and errorIndex for methods with optional params 2016-10-05 22:43:20 -04:00
Ibby
84f54d64aa chore(): update changelog 2016-10-05 22:42:35 -04:00
Ibby
c9ddec3bb5 2.1.3 2016-10-05 22:36:10 -04:00
Ibby
f62e1081e1 fix(google-analytics): add newSession param 2016-10-05 22:35:52 -04:00
Ibby
7dba41cbe1 docs(google-analytics): add missing docs 2016-10-05 22:30:40 -04:00
Ibby
77b0277290 fix(google-analytics): add missing methods, fix return types 2016-10-05 22:27:28 -04:00
Ibby
40325cad9f fix(google-analytics): fix depreciated plugin reference 2016-10-05 22:20:55 -04:00
Ibby
ab5bbae2f6 chore(): update changelog 2016-10-05 21:04:04 -04:00
Ibby
5da746d2fc 2.1.2 2016-10-05 21:03:06 -04:00
Ibby
72a694a5e1 fix(googlemaps): add missing properties
should fix #642
2016-10-05 20:43:57 -04:00
Andrew Cole
1ab0d2f915 Changed confusing sentence structure. (#644)
Reading the document on which destination type, without commas leads to confusing behaviour.
2016-10-05 20:33:31 -04:00
Ramon Henrique Ornelas
083118aff4 docs(background-geolocation): exports interfaces to template dgeni (#640) 2016-10-05 20:33:13 -04:00
Ramon Henrique Ornelas
ad373c93ae docs(paypal): delete ':' of the params (#639) 2016-10-05 20:32:47 -04:00
Ramon Henrique Ornelas
ac301c284f docs(one-signal): fix types params (#638) 2016-10-05 20:32:29 -04:00
Ramon Henrique Ornelas
1e0509da98 docs(paypal): fix typo name interface (#637) 2016-10-05 20:32:12 -04:00
Ibrahim Hadeed
ad3bef2e5a chore(): fix module export conflicts (#633)
* chore(): fix module export conflicts

* remove export{}

* resolve conflicting export names
2016-10-05 20:29:40 -04:00
AndreasGassmann
bbbbb3e8d0 feat(zBar): add zBar barcode scanner plugin (#634) 2016-10-04 15:12:39 -04:00
Ibby
0bc73e525d docs(contacts): improve docs 2016-10-04 13:59:32 -04:00
Ibby
7ababc4d67 docs(googlemaps): remove related interface untill they're well documented 2016-10-04 13:47:28 -04:00
Ibrahim Hadeed
6ff8f03ef0 docs(): docs now display interfaces and related classes
document interfaces + other classes
2016-10-04 13:46:55 -04:00
Ibby
010a6ea304 docs(geolocation): add error handling and related interfaces 2016-10-04 13:45:54 -04:00
perry
973c80b264 docs(pay-pal): interfaces dont’ need to be marked private if their corresponding var is 2016-10-03 17:06:40 -05:00
Ibby
b5f9ba588a 2.1.1 2016-10-03 17:38:47 -04:00
Ibby
c5724fdc4e chore(): fix main and typings paths 2016-10-03 17:38:42 -04:00
Ibby
ebda055444 chore(): update changelog 2016-10-03 17:05:21 -04:00
Ibby
7cf9bd8e5e 2.1.0 2016-10-03 17:04:49 -04:00
Ibrahim Hadeed
ce710117f7 fix(paypal): fix typings, add PayPalItem and PayPalPaymentDetails
fix(paypal): fix typings, add PayPalItem and PayPalPaymentDetails
2016-10-03 16:57:33 -04:00
Ibby
fcda04acf1 add missing docs 2016-10-03 16:56:15 -04:00
Ibby
83ac4c7bbe more docs 2016-10-03 16:51:57 -04:00
Ibrahim Hadeed
2be7872cd6 docs(LocationAccuracy): fixes typo
docs(LocationAccuracy): fixes typo
2016-10-03 14:16:15 -04:00
Ibrahim Hadeed
97a7f1a4e7 docs(googlemaps): change observable to promise in main docs (#624)
GoogleMaps.one() returns Promise not Observable
2016-10-03 14:15:56 -04:00
Nakul Gulati
e9e37f33f9 Changed observable to promise in docs
GoogleMaps.one() returns Promise not Observable
2016-10-03 18:50:40 +05:30
Manu Mtz.-Almeida
344ce11a3e docs(LocationAccuracy): fixes typo 2016-10-03 14:26:13 +02:00
Ibby
7fcd1f85a3 docs(paypal): add related interfaces 2016-10-03 03:18:54 -04:00
Ibby
5d13ba03d8 fix(paypal): fix typings, add PayPalItem and PayPalPaymentDetails 2016-10-03 03:14:51 -04:00
Tomas Beran
a99b753d2d feat(stepcounter): add stepcounter plugin (#607)
* feat(stepcounter): add stepcounter plugin

* docs(stepcounter): add missing returns
2016-10-02 18:20:01 -04:00
Ramon Henrique Ornelas
8f26f4b3ef chore(): move templates of the root folder to scripts/templates similar to Ionic (#612) 2016-10-02 18:19:24 -04:00
Ramon Henrique Ornelas
624bc1d9b5 style(media): fix angular style (#614) 2016-10-01 16:15:58 -04:00
Ramon Henrique Ornelas
0a07bef2d2 chore(): move CONTRIBUTING to .github/CONTRIBUTING (#613) 2016-10-01 16:15:32 -04:00
Ibby
96bb4d38dc chore(media): remove unused import, ensure plugin is installed 2016-10-01 15:19:16 -04:00
Ibby
58a99a14d5 fix(media): add status as a parmeter instead of property of instance 2016-10-01 15:05:08 -04:00
Tom Zöhner
66e9e46458 feat(googlemaps): support bounds in Geocoder (#599) 2016-09-29 11:52:14 -04:00
Gianfranco Palumbo
d6060a95d7 fix(power-management): fix repo and pluginref (#603)
Fixes the link that is generated in the docs here
http://ionicframework.com/docs/v2/native/powermanagement/
2016-09-28 17:56:27 -04:00
Chris Maissan
80ff2f3bfa fix(calendar): fixed modifyEventWithOptions and related interface
* Fixed Calendar modifyEventWithOptions method

* Updated comments
2016-09-28 13:54:19 -04:00
Steve Sanders
16f05c3b0d fix(push): Add support for passing notification id into finish (#600) 2016-09-28 13:51:03 -04:00
Hoisel
2ed84b1b71 fix(social-sharing): shareWithOptions method signature (#598)
Fix shareWithOptions method signature, replacing 'options.file' property with 'options.files' to match social sharing plugin [method interface](https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin/blob/master/src/android/nl/xservices/plugins/SocialSharing.java#L209)
2016-09-27 14:00:01 -04:00
Daniel Leal
8d21f5f225 fix(googlemaps): CameraPosition target can now be GoogleMapsLatLng[] (#587) 2016-09-27 10:51:43 -04:00
SylvainGuittard
be2c198259 fix(googlemaps): typo in GoogleMapsTileOverlayOptions (#589) 2016-09-27 10:51:04 -04:00
Ibrahim Hadeed
dde011c8f6 document interfaces + other classes 2016-09-27 10:46:41 -04:00
Max Lynch
47112c7c24 feat(plugin): checkInstall w/ warning msg 2016-09-25 18:17:09 -05:00
Ramon Henrique Ornelas
1b87af86bf docs(emailcompposer): change repo #568 (#584) 2016-09-25 19:01:39 -04:00
Max Lynch
d45a2b5407 feat(plugin): add getPlugin to plugin interface. Fixes #582 2016-09-25 17:59:56 -05:00
Ibrahim Hadeed
49bf9b7cc5 docs(ble): add return docs for startScanWithOptions 2016-09-25 18:44:29 -04:00
Ibrahim Hadeed
79f0a3fc7b feat(ble): add startScanWithOptions
closes #539
2016-09-25 18:36:00 -04:00
Ibrahim Hadeed
60b7c7469a feat(location-accuracy): add location accuracy plugin (#583)
closes #484
2016-09-25 18:28:22 -04:00
Ibrahim Hadeed
c377489aba chore(): add license 2016-09-25 17:59:21 -04:00
Ibrahim Hadeed
8bb22fb576 fix badges 2016-09-25 17:58:32 -04:00
Ibrahim Hadeed
310e0942fd fix badges 2016-09-25 17:58:13 -04:00
Ibrahim Hadeed
df06a24746 fix badges 2016-09-25 17:57:38 -04:00
Ibrahim Hadeed
b9151bc062 feat(themable-browser): add ThemableBrowser plugin
closes #549
2016-09-25 17:55:13 -04:00
Ibrahim Hadeed
972d63b2d2 feat(themable-browser): add ThemableBrowser plugin
closes #549
2016-09-25 17:53:17 -04:00
Ibrahim Hadeed
440786a4f7 Merge branch 'master' of https://github.com/driftyco/ionic-native 2016-09-25 17:00:11 -04:00
Ibrahim Hadeed
3a6ec05bef style(googlemaps): remove unecessary new lines 2016-09-25 16:55:17 -04:00
Ramon Henrique Ornelas
c5733326a9 fix(isdebug): export IsDebug class (#578) 2016-09-25 15:42:31 -04:00
Ibrahim Hadeed
f36b1c03cb refractor(googlemaps): fix typo in GoogleMapsTileOverlayOptions 2016-09-25 15:29:03 -04:00
123 changed files with 2742 additions and 1033 deletions

View File

@@ -1,18 +1,19 @@
# Contributing to Ionic Native
## Feature request?
Have a plugin you'd like to see supported? Since Ionic Native is a thin wrapper around existing Cordova plugins, adding support for new plugins is as easy as creating a new wrapper for whatever plugin you'd like to add.
Take a look at our [Developer Guide](https://github.com/driftyco/ionic-native/blob/master/DEVELOPER.md) for more info on adding new plugins.
## Have an issue?
#### There are no rules, but here are a few things to consider:
###### Before you submit an issue:
* Do a quick search to see if there are similar issues
* **Check that you are using the latest version of** `ionic-native`
* Make sure that you are waiting for `deviceready` to fire before interacting with any plugin. If you are using Ionic 2, this can be done using [the `Platform.ready()` function](http://ionicframework.com/docs/v2/api/platform/Platform/#ready).
* **Check that you are using the latest version of** `ionic-native`, you can install the latest version by running `npm i --save ionic-native@latest`
###### Still having problems? submit an issue with the following details:
* Short description of the issue
* Steps to reproduce
* Stack trace (if available)
## Feature request?
Have a plugin you'd like to see supported? Since Ionic Native is a thin wrapper around existing Cordova plugins, adding support for new plugins is as easy as creating a new wrapper for whatever plugin you'd like to add.
Take a look at our [Developer Guide](https://github.com/driftyco/ionic-native/blob/master/DEVELOPER.md) for more info on adding new plugins.

View File

@@ -1,3 +1,202 @@
<a name="2.2.4"></a>
## [2.2.4](https://github.com/driftyco/ionic-native/compare/v2.2.3...v2.2.4) (2016-10-15)
### Bug Fixes
* **sqlite:** fix callback order for transaction ([#700](https://github.com/driftyco/ionic-native/issues/700)) ([799e2f0](https://github.com/driftyco/ionic-native/commit/799e2f0))
### Features
* **device-feedback:** add DeviceFeedback plugin ([#696](https://github.com/driftyco/ionic-native/issues/696)) ([bbda6e2](https://github.com/driftyco/ionic-native/commit/bbda6e2))
* **image-picker:** add new android methods ([3edfafb](https://github.com/driftyco/ionic-native/commit/3edfafb))
* **mixpanel:** MixpanelPeople returns promises ([#681](https://github.com/driftyco/ionic-native/issues/681)) ([b95f88c](https://github.com/driftyco/ionic-native/commit/b95f88c)), closes [#667](https://github.com/driftyco/ionic-native/issues/667)
<a name="2.2.3"></a>
## [2.2.3](https://github.com/driftyco/ionic-native/compare/v2.2.2...v2.2.3) (2016-10-14)
### Bug Fixes
* **googlemaps:** Expose 'type' property in GoogleMapsLatLngBounds [#693](https://github.com/driftyco/ionic-native/issues/693) ([#694](https://github.com/driftyco/ionic-native/issues/694)) ([74a252b](https://github.com/driftyco/ionic-native/commit/74a252b))
* **onesignal:** update to match latest API version ([#691](https://github.com/driftyco/ionic-native/issues/691)) ([babfb0d](https://github.com/driftyco/ionic-native/commit/babfb0d))
<a name="2.2.2"></a>
## [2.2.2](https://github.com/driftyco/ionic-native/compare/v2.2.1...v2.2.2) (2016-10-12)
### Bug Fixes
* **file:** getFreeDiskSpace now works ([d2f42ef](https://github.com/driftyco/ionic-native/commit/d2f42ef))
* **file:** read methods can accept Blobs too ([276d61b](https://github.com/driftyco/ionic-native/commit/276d61b))
### Features
* **file:** getFile and getDirectory are now public ([5c92455](https://github.com/driftyco/ionic-native/commit/5c92455)), closes [#657](https://github.com/driftyco/ionic-native/issues/657)
<a name="2.2.1"></a>
## [2.2.1](https://github.com/driftyco/ionic-native/compare/v2.2.0...v2.2.1) (2016-10-12)
### Bug Fixes
* **diagnostic:** misspelled getContactsAuthorizationStatus method ([#678](https://github.com/driftyco/ionic-native/issues/678)) ([bff4862](https://github.com/driftyco/ionic-native/commit/bff4862))
* **file:** fix writeFile method ([842a80d](https://github.com/driftyco/ionic-native/commit/842a80d))
* **file:** last parameter for writeFile now only accepts options ([5710eb7](https://github.com/driftyco/ionic-native/commit/5710eb7))
* **http:** export via window.IonicNative ([#675](https://github.com/driftyco/ionic-native/issues/675)) ([cf7abe1](https://github.com/driftyco/ionic-native/commit/cf7abe1))
* **location-accuracy:** accuracy param is number ([c2d4f1c](https://github.com/driftyco/ionic-native/commit/c2d4f1c)), closes [#676](https://github.com/driftyco/ionic-native/issues/676)
* **themeablebrowser:** add missed options ([#680](https://github.com/driftyco/ionic-native/issues/680)) ([e28e5b0](https://github.com/driftyco/ionic-native/commit/e28e5b0))
### Features
* **file:** resolveLocalFilesystemUrl and resolveDirectoryUrl are now public methods ([542ff4c](https://github.com/driftyco/ionic-native/commit/542ff4c)), closes [#657](https://github.com/driftyco/ionic-native/issues/657)
<a name="2.2.0"></a>
# [2.2.0](https://github.com/driftyco/ionic-native/compare/v2.1.9...v2.2.0) (2016-10-11)
### Bug Fixes
* **native-transitions:** add missing interface properties ([35c8bbd](https://github.com/driftyco/ionic-native/commit/35c8bbd))
* **onesignal:** update to match latest api ([#671](https://github.com/driftyco/ionic-native/issues/671)) ([7c6e6d8](https://github.com/driftyco/ionic-native/commit/7c6e6d8)), closes [#667](https://github.com/driftyco/ionic-native/issues/667)
* **thmeable-browser:** fix the name of the plugin ([#663](https://github.com/driftyco/ionic-native/issues/663)) ([1368175](https://github.com/driftyco/ionic-native/commit/1368175))
### Features
* **http:** add cordovaHTTP wrapper ([#674](https://github.com/driftyco/ionic-native/issues/674)) ([f0961c7](https://github.com/driftyco/ionic-native/commit/f0961c7))
<a name="2.1.9"></a>
## [2.1.9](https://github.com/driftyco/ionic-native/compare/v2.1.8...v2.1.9) (2016-10-09)
### Bug Fixes
* **paypal:** add optional details param to paypalpayment ([7200845](https://github.com/driftyco/ionic-native/commit/7200845))
* **paypal:** problems with selection of PayPal environment ([#662](https://github.com/driftyco/ionic-native/issues/662)) ([3dd6a92](https://github.com/driftyco/ionic-native/commit/3dd6a92))
<a name="2.1.8"></a>
## [2.1.8](https://github.com/driftyco/ionic-native/compare/v2.1.7...v2.1.8) (2016-10-08)
### Bug Fixes
* **googlemaps:** fixes GoogleMapsLatLng class ([11653ce](https://github.com/driftyco/ionic-native/commit/11653ce))
<a name="2.1.7"></a>
## [2.1.7](https://github.com/driftyco/ionic-native/compare/v2.1.6...v2.1.7) (2016-10-07)
### Bug Fixes
* **paypal:** fixed currency code not found issue ([#653](https://github.com/driftyco/ionic-native/issues/653)) ([598f8a9](https://github.com/driftyco/ionic-native/commit/598f8a9))
<a name="2.1.6"></a>
## [2.1.6](https://github.com/driftyco/ionic-native/compare/v2.1.5...v2.1.6) (2016-10-06)
### Bug Fixes
* **paypal:** fix helper classes ([f002657](https://github.com/driftyco/ionic-native/commit/f002657))
<a name="2.1.5"></a>
## [2.1.5](https://github.com/driftyco/ionic-native/compare/v2.1.4...v2.1.5) (2016-10-06)
<a name="2.1.4"></a>
## [2.1.4](https://github.com/driftyco/ionic-native/compare/v2.1.3...v2.1.4) (2016-10-06)
### Bug Fixes
* **google-analytics:** specify successIndex and errorIndex for methods with optional params ([6f23bef](https://github.com/driftyco/ionic-native/commit/6f23bef))
<a name="2.1.3"></a>
## [2.1.3](https://github.com/driftyco/ionic-native/compare/v2.1.2...v2.1.3) (2016-10-06)
### Bug Fixes
* **google-analytics:** add missing methods, fix return types ([77b0277](https://github.com/driftyco/ionic-native/commit/77b0277))
* **google-analytics:** add newSession param ([f62e108](https://github.com/driftyco/ionic-native/commit/f62e108))
* **google-analytics:** fix depreciated plugin reference ([40325ca](https://github.com/driftyco/ionic-native/commit/40325ca))
<a name="2.1.2"></a>
## [2.1.2](https://github.com/driftyco/ionic-native/compare/v2.1.1...v2.1.2) (2016-10-06)
### Bug Fixes
* **googlemaps:** add missing properties ([72a694a](https://github.com/driftyco/ionic-native/commit/72a694a)), closes [#642](https://github.com/driftyco/ionic-native/issues/642)
### Features
* **zBar:** add zBar barcode scanner plugin ([#634](https://github.com/driftyco/ionic-native/issues/634)) ([bbbbb3e](https://github.com/driftyco/ionic-native/commit/bbbbb3e))
<a name="2.1.1"></a>
## [2.1.1](https://github.com/driftyco/ionic-native/compare/v2.1.0...v2.1.1) (2016-10-03)
<a name="2.1.0"></a>
# [2.1.0](https://github.com/driftyco/ionic-native/compare/v2.0.3...v2.1.0) (2016-10-03)
### Bug Fixes
* **calendar:** fixed modifyEventWithOptions and related interface ([80ff2f3](https://github.com/driftyco/ionic-native/commit/80ff2f3))
* **googlemaps:** CameraPosition target can now be GoogleMapsLatLng[] ([#587](https://github.com/driftyco/ionic-native/issues/587)) ([8d21f5f](https://github.com/driftyco/ionic-native/commit/8d21f5f))
* **googlemaps:** typo in GoogleMapsTileOverlayOptions ([#589](https://github.com/driftyco/ionic-native/issues/589)) ([be2c198](https://github.com/driftyco/ionic-native/commit/be2c198))
* **isdebug:** export IsDebug class ([#578](https://github.com/driftyco/ionic-native/issues/578)) ([c573332](https://github.com/driftyco/ionic-native/commit/c573332))
* **media:** add status as a parmeter instead of property of instance ([58a99a1](https://github.com/driftyco/ionic-native/commit/58a99a1))
* **paypal:** fix typings, add PayPalItem and PayPalPaymentDetails ([5d13ba0](https://github.com/driftyco/ionic-native/commit/5d13ba0))
* **power-management:** fix repo and pluginref ([#603](https://github.com/driftyco/ionic-native/issues/603)) ([d6060a9](https://github.com/driftyco/ionic-native/commit/d6060a9))
* **push:** Add support for passing notification id into finish ([#600](https://github.com/driftyco/ionic-native/issues/600)) ([16f05c3](https://github.com/driftyco/ionic-native/commit/16f05c3))
* **social-sharing:** shareWithOptions method signature ([#598](https://github.com/driftyco/ionic-native/issues/598)) ([2ed84b1](https://github.com/driftyco/ionic-native/commit/2ed84b1)), closes [/github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin/blob/master/src/android/nl/xservices/plugins/SocialSharing.java#L209](https://github.com//github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin/blob/master/src/android/nl/xservices/plugins/SocialSharing.java/issues/L209)
### Features
* **ble:** add startScanWithOptions ([79f0a3f](https://github.com/driftyco/ionic-native/commit/79f0a3f)), closes [#539](https://github.com/driftyco/ionic-native/issues/539)
* **googlemaps:** support bounds in Geocoder ([#599](https://github.com/driftyco/ionic-native/issues/599)) ([66e9e46](https://github.com/driftyco/ionic-native/commit/66e9e46))
* **location-accuracy:** add location accuracy plugin ([#583](https://github.com/driftyco/ionic-native/issues/583)) ([60b7c74](https://github.com/driftyco/ionic-native/commit/60b7c74)), closes [#484](https://github.com/driftyco/ionic-native/issues/484)
* **plugin:** add getPlugin to plugin interface. Fixes [#582](https://github.com/driftyco/ionic-native/issues/582) ([d45a2b5](https://github.com/driftyco/ionic-native/commit/d45a2b5))
* **plugin:** checkInstall w/ warning msg ([47112c7](https://github.com/driftyco/ionic-native/commit/47112c7))
* **stepcounter:** add stepcounter plugin ([#607](https://github.com/driftyco/ionic-native/issues/607)) ([a99b753](https://github.com/driftyco/ionic-native/commit/a99b753))
* **themable-browser:** add ThemableBrowser plugin ([b9151bc](https://github.com/driftyco/ionic-native/commit/b9151bc)), closes [#549](https://github.com/driftyco/ionic-native/issues/549)
* **themable-browser:** add ThemableBrowser plugin ([972d63b](https://github.com/driftyco/ionic-native/commit/972d63b)), closes [#549](https://github.com/driftyco/ionic-native/issues/549)
<a name="2.0.3"></a>
## [2.0.3](https://github.com/driftyco/ionic-native/compare/v1.3.21...v2.0.3) (2016-09-24)

23
LICENSE Normal file
View File

@@ -0,0 +1,23 @@
Copyright 2015-present Drifty Co.
http://drifty.com/
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,8 +1,8 @@
[![Circle CI](https://circleci.com/gh/driftyco/ionic-native.svg?style=shield)](https://circleci.com/gh/driftyco/ionic-native) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![npm](https://img.shields.io/npm/l/express.svg)](https://www.npmjs.com/package/ionic-native-playground)
[![npm](https://img.shields.io/npm/l/express.svg)](https://www.npmjs.com/package/ionic-native)
[![NPM](https://nodei.co/npm/ionic-native.png?stars&downloads)](https://nodei.co/npm/ionic-native/)
[![NPM](https://nodei.co/npm-dl/ionic-native.png?months=6&height=2)](https://nodei.co/npm/ionic-native/)
# Ionic Native

View File

@@ -2,7 +2,7 @@ var gulp = require('gulp');
var minimist = require('minimist');
var uglify = require('gulp-uglify');
var rename = require("gulp-rename");
var tslint = require('ionic-gulp-tslint');
var tslint = require('gulp-tslint');
var decamelize = require('decamelize');
var replace = require('gulp-replace');
@@ -28,12 +28,17 @@ gulp.task("minify:dist", function(){
});
gulp.task('lint', function() {
tslint({src: 'src/**/*.ts'});
gulp.src('src/**/*.ts')
.pipe(tslint({
formatter: "verbose",
configuration: 'tslint.json'
}))
.pipe(tslint.report())
});
gulp.task('plugin:create', function(){
if(flags.n && flags.n !== ''){
var src = flags.m?'./TEMPLATE-MIN':'./TEMPLATE';
var src = flags.m?'./scripts/templates/wrap-min.tmpl':'./scripts/templates/wrap.tmpl';
return gulp.src(src)
.pipe(replace('PluginName', flags.n))
.pipe(rename(decamelize(flags.n, '-') + '.ts'))

View File

@@ -22,6 +22,7 @@ module.exports = config => {
},
browserify: {
debug: true,
plugin: [ 'tsify' ],
extensions: ['.js', '.ts']
},

View File

@@ -1,10 +1,10 @@
{
"name": "ionic-native",
"version": "2.0.3",
"version": "2.2.5",
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
"main": "dist/es5/index.js",
"typings": "dist/es5/index.d.ts",
"module": "dist/esm/index.js",
"typings": "dist/es5/index.d.ts",
"files": [
"dist"
],
@@ -26,9 +26,8 @@
"gulp": "^3.9.1",
"gulp-rename": "^1.2.2",
"gulp-replace": "^0.5.4",
"gulp-tslint": "^5.0.0",
"gulp-tslint": "^6.1.2",
"gulp-uglify": "^1.5.4",
"ionic-gulp-tslint": "^1.0.0",
"jasmine-core": "~2.5.0",
"karma": "~1.2.0",
"karma-browserify": "~5.1.0",
@@ -41,7 +40,7 @@
"q": "1.4.1",
"semver": "^5.0.1",
"tsify": "~1.0.4",
"tslint": "^3.8.1",
"tslint": "^3.15.1",
"tslint-ionic-rules": "0.0.5",
"typescript": "^2.0.1",
"watchify": "~3.7.0"
@@ -52,9 +51,10 @@
"start": "npm run test:watch",
"lint": "gulp lint",
"watch": "tsc -w",
"build": "npm run lint && npm run build:js && npm run build:bundle && npm run build:minify",
"build:js": "tsc",
"build:bundle": "browserify dist/index.js > dist/ionic.native.js",
"build": "npm run lint && npm run build:js && npm run build:esm && npm run build:bundle && npm run build:minify",
"build:js": "tsc -p tsconfig-es5.json",
"build:esm": "tsc -p tsconfig-esm.json",
"build:bundle": "browserify dist/es5/index.js > dist/ionic.native.js",
"build:minify": "gulp minify:dist",
"shipit": "npm run build && npm publish && bash ./scripts/bower.sh",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",

View File

@@ -31,12 +31,37 @@ module.exports = function(currentVersion) {
// $runBefore: ['rendering-docs'],
// $process: function(docs){
// docs.forEach(function(doc){
// if (doc.members && doc.name == "IonicApp"){
// doc.members.forEach(function(method){
// if (method.name === "load") {
// console.log(method);
// }
// })
// if (doc.name == "Camera"){
//
// // console.log(doc.tags);
// // doc.tags.forEach(function(tag){
// // if(tag.tagName == 'classes'){
// //
// // }
// // });
//
// // doc.moduleDoc.exports.forEach(function(d,i){
// // if(d.name === 'CameraOptions') {
// // console.log('Name: ' + d.name);
// // console.log('Type: ' + d.docType);
// // console.log('First member: ', d.members[0]);
// // }
// // });
//
//
// // var exports = doc.exportSymbol.parent.exports;
// // for(var p in exports) {
// // if(p == 'CameraOptions')
// // {
// // var x = exports[p];
// // console.log(x.members.quality);
// // }
// // }
// // doc.members.forEach(function(method){
// // if (method.name === "getPicture") {
// // console.log(method);
// // }
// // })
// }
// })
// }

View File

@@ -1,5 +1,7 @@
module.exports = [
{'name': 'advanced'},
{'name': 'demo'},
{'name': 'usage'}
{'name': 'usage'},
{'name': 'classes'}, // related classes
{'name': 'interfaces'} // related interfaces
];

View File

@@ -11,6 +11,39 @@ doc: "<$ doc.name $>"
docType: "<$ doc.docType $>"
---
<@ macro interfaceTable(interface) @>
<@ for export in doc.moduleDoc.exports -@>
<@ if export.name == interface @>
<table class="table param-table" style="margin:0;">
<thead>
<tr>
<th>Param</th>
<th>Type</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<@ for param in export.members @>
<tr>
<td>
<$ param.name $>
<@ if param.optional @><div><em>(optional)</em></div><@ endif @>
</td>
<td>
<$ param.returnType | escape $>
</td>
<td>
<$ param.description | marked $>
</td>
</tr>
<@ endfor @>
</tbody>
</table>
<@ endif @>
<@- endfor @>
<@ endmacro @>
<@ macro paramList(paramData) -@>
<@- if paramData -@><span class="params">(
<@- for param in paramData -@>
@@ -73,15 +106,81 @@ docType: "<$ doc.docType $>"
<$ typeList(fn.typeList) $> <$ fn.description $>
<@- endmacro -@>
<@ macro documentClass(doc) @>
<@- if doc.statics.length -@>
<h2>Static Members</h2>
<@ for method in doc.statics -@>
<@ if not method.internal @>
<div id="<$ method.name $>"></div>
<h3><$ functionSyntax(method) $></h3>
<@- if method.decorators @>
<@ for prop in method.decorators[0].argumentInfo @>
<@ if prop.platforms @>
<p>
<b>Platforms:</b>
<@- for platform in prop.platforms @>
<code><$ platform $></code>&nbsp;
<@ endfor -@>
</p>
<@ endif @>
<@ endfor @>
<@- endif @>
<$ method.description $>
<@ if method.params @>
<$ paramTable(method.params) $>
<@ endif @>
<@ if method.this -@>
<h4> Method's `this`
<$ method.this $>
</h4>
<@- endif @>
<@ if method.returns @>
<div class="return-value" markdown="1">
<i class="icon ion-arrow-return-left"></i>
<b>Returns:</b> <$ typeInfo(method.returns) $>
</div>
<@ endif @>
<@ endif @>
<@ endfor -@>
<@ endif @>
<!-- methods on the class -->
<@- if doc.members and doc.members.length @>
<h2>Instance Members</h2>
<@ for method in doc.members -@>
<div id="<$ method.name $>"></div>
<h3>
<$ functionSyntax(method) $>
</h3>
<$ method.description $>
<@ if method.params -@>
<$ paramTable(method.params) $>
<@- endif @>
<@ if method.this -@>
<h4> Method's `this`
<$ method.this $>
</h4>
<@- endif @>
<@ if method.returns -@>
<div class="return-value" markdown="1">
<i class="icon ion-arrow-return-left"></i>
<b>Returns:</b> <$ typeInfo(method.returns) $>
</div>
<@- endif @>
<@- endfor @>
<@- endif -@>
<@ endmacro @>
<@ block body @>
<@ block content @>
<@ block header @>
<h1 class="api-title">
<@ if doc.docType == "directive" @>
<$ doc.name | dashCase $>
<@ else @>
@@ -108,10 +207,6 @@ docType: "<$ doc.docType $>"
Improve this doc
</a>
<@ if doc.codepen @>
{% include codepen.html id="<$ doc.codepen $>" %}
<@ endif @>
<@ endblock @>
<!-- decorators -->
@@ -141,9 +236,9 @@ docType: "<$ doc.docType $>"
<h2>Supported platforms</h2>
<@ block platforms @>
<ul>
<@- for platform in prop.platforms @>
<@ for platform in prop.platforms -@>
<li><$ platform $></li>
<@ endfor -@>
<@- endfor @>
</ul>
<@ endblock @>
<!-- @platforms tag end -->
@@ -181,12 +276,11 @@ docType: "<$ doc.docType $>"
</tr>
</thead>
<tbody>
<@ for prop in doc.properties @>
<@ for prop in doc.properties -@>
<tr>
<td>
<$ prop.name $>
</td>
<@ if hasTypes @>
<td>
<$ prop.type.name $>
@@ -197,86 +291,12 @@ docType: "<$ doc.docType $>"
<$ prop.description $>
</td>
</tr>
<@ endfor @>
<@- endfor @>
</tbody>
</table>
<@ endif @>
<@- if doc.statics.length -@>
<h2>Static Members</h2>
<@- for method in doc.statics @><@ if not method.internal @>
<div id="<$ method.name $>"></div>
<h3><$ functionSyntax(method) $></h3>
<@- if method.decorators @>
<@ for prop in method.decorators[0].argumentInfo @>
<@ if prop.platforms @>
<p>
<b>Platforms:</b>
<@- for platform in prop.platforms @>
<code><$ platform $></code>&nbsp;
<@ endfor -@>
</p>
<@ endif @>
<@ endfor @>
<@ endif -@>
<$ method.description $>
<@ if method.params @>
<$ paramTable(method.params) $>
<@ endif @>
<@ if method.this @>
<h4> Method's `this`
<$ method.this $>
</h4>
<@ endif @>
<@ if method.returns @>
<div class="return-value" markdown="1">
<i class="icon ion-arrow-return-left"></i>
<b>Returns:</b> <$ typeInfo(method.returns) $>
</div>
<@ endif @>
<@ endif @>
<@ endfor -@>
<@ endif @>
<!-- methods on the class -->
<@- if doc.members and doc.members.length @>
<h2>Instance Members</h2>
<@- for method in doc.members @>
<div id="<$ method.name $>"></div>
<h3>
<$ functionSyntax(method) $>
</h3>
<$ method.description $>
<@ if method.params @>
<$ paramTable(method.params) $>
<@ endif @>
<@ if method.this @>
<h4> Method's `this`
<$ method.this $>
</h4>
<@ endif @>
<@ if method.returns @>
<div class="return-value" markdown="1">
<i class="icon ion-arrow-return-left"></i>
<b>Returns:</b> <$ typeInfo(method.returns) $>
</div>
<@ endif @>
<@ endfor -@>
<@- endif -@>
<$ documentClass(doc) $>
<@ block advanced @>
<@- if doc.advanced -@>
@@ -285,6 +305,40 @@ docType: "<$ doc.docType $>"
<@- endif -@>
<@ endblock @>
<!-- other classes -->
<@ for tag in doc.tags.tags -@>
<@ if tag.tagName == 'classes' -@>
<h2><a class="anchor" name="related-classes" href="#related-classes"></a>Related Classes</h2>
<@ set classes = tag.description.split('\n') @>
<@ for item in classes -@>
<@ if item.length > 1 @>
<@ for export in doc.moduleDoc.exports -@>
<@ if export.name == item @>
<h3><a class="anchor" name="<$ item $>" href="#<$ item $>"></a><$ item $></h3>
<$ documentClass(export) $>
<@ endif @>
<@- endfor @>
<@ endif @>
<@- endfor @>
<@- endif @>
<@- endfor @>
<!-- end other classes -->
<!-- interfaces -->
<@ for tag in doc.tags.tags -@>
<@ if tag.tagName == 'interfaces' @>
<h2><a class="anchor" name="interfaces" href="#interfaces"></a>Interfaces</h2>
<@ set interfaces = tag.description.split('\n') @>
<@ for item in interfaces -@>
<@ if item.length > 1 @>
<h3><a class="anchor" name="<$ item $>" href="#<$ item $>"></a><$ item $></h3>
<$ interfaceTable(item) $>
<@ endif @>
<@- endfor @>
<@ endif @>
<@- endfor @>
<!-- end interfaces -->
<!-- related link -->
<@- if doc.see @>

View File

@@ -11,6 +11,7 @@ import { Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'PluginName',
plugin: '',
pluginRef: '',
repo: ''

View File

@@ -29,6 +29,7 @@ import { Observable } from 'rxjs/Observable';
* ```
*/
@Plugin({
name: 'PluginName',
plugin: '', // npm package name, example: cordova-plugin-camera
pluginRef: '', // the variable reference to call the plugin, example: navigator.geolocation
repo: '', // the github repository URL for the plugin

View File

@@ -32,6 +32,7 @@ import { DatePicker } from './plugins/datepicker';
import { DBMeter } from './plugins/dbmeter';
import { Deeplinks } from './plugins/deeplinks';
import { Device } from './plugins/device';
import { DeviceFeedback } from './plugins/device-feedback';
import { DeviceAccounts } from './plugins/deviceaccounts';
import { DeviceMotion } from './plugins/devicemotion';
import { DeviceOrientation } from './plugins/deviceorientation';
@@ -43,15 +44,17 @@ import { Facebook } from './plugins/facebook';
import { File } from './plugins/file';
import { FileChooser } from './plugins/file-chooser';
import { FileOpener } from './plugins/file-opener';
import { FilePath } from './plugins/filepath';
import { Transfer } from './plugins/filetransfer';
import { Flashlight } from './plugins/flashlight';
import { Geofence } from './plugins/geofence';
import { Geolocation } from './plugins/geolocation';
import { Globalization } from './plugins/globalization';
import { GooglePlus } from './plugins/google-plus';
import { GoogleMap } from './plugins/googlemaps';
import { GoogleMap } from './plugins/googlemap';
import { GoogleAnalytics } from './plugins/googleanalytics';
import { Hotspot } from './plugins/hotspot';
import { HTTP } from './plugins/http';
import { Httpd } from './plugins/httpd';
import { IBeacon } from './plugins/ibeacon';
import { ImagePicker } from './plugins/imagepicker';
@@ -64,6 +67,7 @@ import { IsDebug } from './plugins/is-debug';
import { Keyboard } from './plugins/keyboard';
import { LaunchNavigator } from './plugins/launchnavigator';
import { LocalNotifications } from './plugins/localnotifications';
import { LocationAccuracy } from './plugins/location-accuracy';
import { MediaCapture } from './plugins/media-capture';
import { NativeAudio } from './plugins/native-audio';
import { NativePageTransitions } from './plugins/native-page-transitions';
@@ -93,127 +97,130 @@ import { SpinnerDialog } from './plugins/spinnerdialog';
import { Splashscreen } from './plugins/splashscreen';
import { SQLite } from './plugins/sqlite';
import { StatusBar } from './plugins/statusbar';
import { Stepcounter } from './plugins/stepcounter';
import { StreamingMedia } from './plugins/streaming-media';
import { ThreeDeeTouch } from './plugins/3dtouch';
import { Toast } from './plugins/toast';
import { TouchID } from './plugins/touchid';
import { TextToSpeech } from './plugins/text-to-speech';
import { ThemeableBrowser } from './plugins/themeable-browser';
import { TwitterConnect } from './plugins/twitter-connect';
import { Vibration } from './plugins/vibration';
import { VideoEditor } from './plugins/video-editor';
import { VideoPlayer } from './plugins/video-player';
import { WebIntent } from './plugins/webintent';
import { YoutubeVideoPlayer } from './plugins/youtube-video-player';
import { ZBar } from './plugins/z-bar';
import { Zip } from './plugins/zip';
export * from './plugins/3dtouch';
export * from './plugins/actionsheet';
export * from './plugins/admob';
export * from './plugins/android-fingerprint-auth';
export * from './plugins/appavailability';
export * from './plugins/apprate';
export * from './plugins/appversion';
export * from './plugins/background-geolocation';
export * from './plugins/backgroundmode';
export * from './plugins/badge';
export * from './plugins/barcodescanner';
export * from './plugins/base64togallery';
export * from './plugins/batterystatus';
export * from './plugins/ble';
export * from './plugins/bluetoothserial';
export * from './plugins/brightness';
export * from './plugins/calendar';
export * from './plugins/call-number';
export * from './plugins/camera';
export * from './plugins/camera-preview';
export * from './plugins/card-io';
export * from './plugins/clipboard';
export * from './plugins/code-push';
export * from './plugins/contacts';
export * from './plugins/crop';
export * from './plugins/datepicker';
export * from './plugins/dbmeter';
export * from './plugins/deeplinks';
export * from './plugins/device';
export * from './plugins/device-feedback';
export * from './plugins/deviceaccounts';
export * from './plugins/devicemotion';
export * from './plugins/deviceorientation';
export * from './plugins/diagnostic';
export * from './plugins/dialogs';
export * from './plugins/emailcomposer';
export * from './plugins/estimote-beacons';
export * from './plugins/facebook';
export * from './plugins/file';
export * from './plugins/file-chooser';
export * from './plugins/file-opener';
export * from './plugins/filetransfer';
export * from './plugins/filepath';
export * from './plugins/flashlight';
export * from './plugins/geofence';
export * from './plugins/geolocation';
export * from './plugins/googlemaps';
export * from './plugins/globalization';
export * from './plugins/google-plus';
export * from './plugins/googleanalytics';
export * from './plugins/googlemap';
export * from './plugins/hotspot';
export * from './plugins/http';
export * from './plugins/httpd';
export * from './plugins/ibeacon';
export * from './plugins/imagepicker';
export * from './plugins/imageresizer';
export * from './plugins/inappbrowser';
export * from './plugins/inapppurchase';
export * from './plugins/insomnia';
export * from './plugins/instagram';
export * from './plugins/is-debug';
export * from './plugins/keyboard';
export * from './plugins/launchnavigator';
export * from './plugins/localnotifications';
export * from './plugins/nfc';
export * from './plugins/location-accuracy';
export * from './plugins/market';
export * from './plugins/media';
export * from './plugins/media-capture';
export * from './plugins/mixpanel';
export * from './plugins/pay-pal';
export * from './plugins/music-controls';
export * from './plugins/native-audio';
export * from './plugins/native-page-transitions';
export * from './plugins/nativestorage';
export * from './plugins/network';
export * from './plugins/nfc';
export * from './plugins/onesignal';
export * from './plugins/pay-pal';
export * from './plugins/photo-viewer';
export * from './plugins/pin-dialog';
export * from './plugins/plugin';
export * from './plugins/power-management';
export * from './plugins/printer';
export * from './plugins/push';
export * from './plugins/safari-view-controller';
export * from './plugins/screen-orientation';
export * from './plugins/screenshot';
export * from './plugins/securestorage';
export * from './plugins/shake';
export * from './plugins/sim';
export * from './plugins/sms';
export * from './plugins/socialsharing';
export * from './plugins/spinnerdialog';
export * from './plugins/splashscreen';
export * from './plugins/sqlite';
export * from './plugins/statusbar';
export * from './plugins/stepcounter';
export * from './plugins/streaming-media';
export * from './plugins/text-to-speech';
export * from './plugins/themeable-browser';
export * from './plugins/toast';
export * from './plugins/touchid';
export * from './plugins/twitter-connect';
export * from './plugins/vibration';
export * from './plugins/video-editor';
export * from './plugins/video-player';
export {
ActionSheet,
AdMob,
AndroidFingerprintAuth,
AppAvailability,
AppRate,
AppVersion,
Badge,
BarcodeScanner,
Base64ToGallery,
BatteryStatus,
Brightness,
BLE,
BluetoothSerial,
CallNumber,
CameraPreview,
Clipboard,
CodePush,
Crop,
DBMeter,
Deeplinks,
DeviceAccounts,
Dialogs,
Diagnostic,
EmailComposer,
EstimoteBeacons,
File,
FileChooser,
FileOpener,
Flashlight,
Geofence,
Globalization,
GooglePlus,
GoogleAnalytics,
Hotspot,
InAppPurchase,
Insomnia,
Instagram,
Keyboard,
MusicControls,
NativeAudio,
NativeStorage,
Network,
Market,
OneSignal,
PhotoViewer,
ScreenOrientation,
PinDialog,
PowerManagement,
Screenshot,
SecureStorage,
Shake,
SocialSharing,
Sim,
Splashscreen,
SQLite,
StatusBar,
TouchID,
Transfer,
TextToSpeech,
Vibration,
VideoPlayer,
WebIntent,
YoutubeVideoPlayer,
Zip
}
export * from './plugins/plugin';
export * from './plugins/webintent';
export * from './plugins/youtube-video-player';
export * from './plugins/z-bar';
export * from './plugins/zip';
// Window export to use outside of a module loading system
window['IonicNative'] = {
@@ -245,6 +252,7 @@ window['IonicNative'] = {
DBMeter,
Deeplinks,
Device,
DeviceFeedback,
DeviceAccounts,
DeviceMotion,
DeviceOrientation,
@@ -256,6 +264,7 @@ window['IonicNative'] = {
File,
FileChooser,
FileOpener,
FilePath,
Flashlight,
Geofence,
Geolocation,
@@ -264,17 +273,20 @@ window['IonicNative'] = {
GoogleMap,
GoogleAnalytics,
Hotspot,
HTTP,
Httpd,
IBeacon,
ImagePicker,
ImageResizer,
InAppBrowser,
InAppPurchase,
Insomnia,
Instagram,
IsDebug,
Keyboard,
LaunchNavigator,
LocalNotifications,
LocationAccuracy,
Market,
MediaCapture,
MediaPlugin,
@@ -304,18 +316,21 @@ window['IonicNative'] = {
Splashscreen,
SQLite,
StatusBar,
Stepcounter,
StreamingMedia,
ThreeDeeTouch,
Toast,
TouchID,
Transfer,
TextToSpeech,
ThemeableBrowser,
TwitterConnect,
VideoEditor,
VideoPlayer,
Vibration,
WebIntent,
YoutubeVideoPlayer,
ZBar,
Zip
};

View File

@@ -54,7 +54,7 @@ declare var window: any;
* ];
* ThreeDeeTouch.configureQuickActions(actions);
*
* ThreeDeeTouchForceTouch.onHomeIconPressed().subscribe(
* ThreeDeeTouch.onHomeIconPressed().subscribe(
* (payload) => {
* // returns an object that is the button you presed
* console.log('Pressed the ${payload.title} button')
@@ -65,6 +65,7 @@ declare var window: any;
* ```
*/
@Plugin({
name: 'ThreeDeeTouch',
plugin: 'cordova-plugin-3dtouch',
pluginRef: 'ThreeDeeTouch',
repo: 'https://github.com/EddyVerbruggen/cordova-plugin-3dtouch',
@@ -94,6 +95,7 @@ export class ThreeDeeTouch {
* @param {string} title Title for your action
* @param {string} subtitle (optional) A short description for your action
* @param {string} iconType (optional) Choose between Prohibit, Contact, Home, MarkLocation, Favorite, Love, Cloud, Invitation, Confirmation, Mail, Message, Date, Time, CapturePhoto, CaptureVideo, Task, TaskCompleted, Alarm, Bookmark, Shuffle, Audio, Update
* @param {string} iconTemplate (optional) Can be used to provide your own icon
*/
@Cordova({
sync: true
@@ -139,6 +141,7 @@ export interface ThreeDeeTouchQuickAction {
title: string;
subtitle?: string;
iconType?: string;
iconTemplate?: string;
}
export interface ThreeDeeTouchForceTouch {

View File

@@ -41,6 +41,7 @@ import { Cordova, Plugin } from './plugin';
*
*/
@Plugin({
name: 'ActionSheet',
plugin: 'cordova-plugin-actionsheet',
pluginRef: 'plugins.actionsheet',
repo: 'https://github.com/EddyVerbruggen/cordova-plugin-actionsheet',

View File

@@ -8,6 +8,7 @@ import { Observable } from 'rxjs/Observable';
* Please refer the the plugin's original repository for detailed usage.
*/
@Plugin({
name: 'AdMob',
plugin: 'cordova-plugin-admobpro',
pluginRef: 'AdMob',
repo: 'https://github.com/floatinghotpot/cordova-admob-pro',

View File

@@ -30,6 +30,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'AndroidFingerprintAuth',
plugin: 'cordova-plugin-android-fingerprint-auth',
pluginRef: 'FingerprintAuth',
repo: 'https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth'

View File

@@ -28,6 +28,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'AppAvailability',
plugin: 'cordova-plugin-appavailability',
pluginRef: 'appAvailability',
repo: 'https://github.com/ohh2ahh/AppAvailability',

View File

@@ -44,6 +44,7 @@ declare var window;
*/
@Plugin({
name: 'AppRate',
plugin: 'cordova-plugin-apprate',
pluginRef: 'AppRate',
repo: 'https://github.com/pushandplay/cordova-plugin-apprate',

View File

@@ -19,6 +19,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'AppVersion',
plugin: 'cordova-plugin-app-version',
pluginRef: 'cordova.getAppVersion',
repo: 'https://github.com/whiteoctober/cordova-plugin-app-version',

View File

@@ -236,8 +236,8 @@ export interface Config {
*
* // When device is ready :
* platform.ready().then(() => {
* // IMPORTANT: BackgroundGeolocation must be called within app.ts and or before Geolocation. Otherwise the platform will not ask you for background tracking permission.
*
* // IMPORTANT: BackgroundGeolocation must be called within app.ts and or before Geolocation. Otherwise the platform will not ask you for background tracking permission.
*
* // BackgroundGeolocation is highly configurable. See platform specific configuration options
* let config = {
* desiredAccuracy: 10,
@@ -267,8 +267,12 @@ export interface Config {
* BackgroundGeolocation.stop();
*
* ```
* @interfaces
* Location
* Config
*/
@Plugin({
name: 'BackgroundGeolocation',
plugin: 'cordova-plugin-mauron85-background-geolocation',
pluginRef: 'backgroundGeolocation',
repo: 'https://github.com/mauron85/cordova-plugin-background-geolocation',
@@ -327,10 +331,9 @@ export class BackgroundGeolocation {
/**
* Configure the plugin.
*
* @param {Function} Success callback will be called when background location is determined.
* @param {Function} Fail callback to be executed every time a geolocation error occurs.
* @param {Object} An object of type Config
*
* @param {Function} callback callback will be called when background location is determined.
* @param {Function} errorCallback callback to be executed every time a geolocation error occurs.
* @param {Config} options An object of type Config
* @return Location object, which tries to mimic w3c Coordinates interface.
* See http://dev.w3.org/geo/api/spec-source.html#coordinates_interface
* Callback to be executed every time a geolocation is recorded in the background.
@@ -338,7 +341,7 @@ export class BackgroundGeolocation {
@Cordova({
sync: true
})
static configure(callback: Function, errorCallback: Function, options: Config): void { return; }
static configure(callback: Function, errorCallback: Function, options: Config): any { return; }
/**
* Turn ON the background-geolocation system.

View File

@@ -28,6 +28,7 @@ import { Observable } from 'rxjs/Observable';
*
*/
@Plugin({
name: 'BackgroundMode',
plugin: 'cordova-plugin-background-mode',
pluginRef: 'cordova.plugins.backgroundMode',
repo: 'https://github.com/katzer/cordova-plugin-background-mode',

View File

@@ -18,6 +18,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'Badge',
plugin: 'cordova-plugin-badge',
pluginRef: 'cordova.plugins.notification.badge',
repo: 'https://github.com/katzer/cordova-plugin-badge',

View File

@@ -20,6 +20,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'BarcodeScanner',
plugin: 'phonegap-plugin-barcodescanner',
pluginRef: 'cordova.plugins.barcodeScanner',
repo: 'https://github.com/phonegap/phonegap-plugin-barcodescanner',

View File

@@ -14,6 +14,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'Base64ToGallery',
plugin: 'cordova-base64-to-gallery',
pluginRef: 'cordova',
repo: 'https://github.com/Nexxa/cordova-base64-to-gallery',
@@ -24,7 +25,7 @@ export class Base64ToGallery {
/**
* Converts a base64 string to an image file in the device gallery
* @param {string} data The actual base64 string that you want to save
* @param {any} options (optional) An object with properties: prefix: string, mediaScanner: boolean. Prefix will be prepended to the filename. If true, mediaScanner runs Media Scanner on Android and saves to Camera Roll on iOS; if false, saves to Library folder on iOS.
* @param {any} options (optional) An object with properties: prefix: string, mediaScanner: boolean. Prefix will be prepended to the filename. If true, mediaScanner runs Media Scanner on Android and saves to Camera Roll on iOS; if false, saves to Library folder on iOS.
* @returns {Promise} returns a promise that resolves when the image is saved.
*/
@Cordova({

View File

@@ -24,6 +24,7 @@ import { Observable } from 'rxjs/Observable';
* ```
*/
@Plugin({
name: 'BatteryStatus',
plugin: 'cordova-plugin-battery-status',
repo: 'https://github.com/apache/cordova-plugin-battery-status',
platforms: ['Amazon Fire OS', 'iOS', 'Android', 'BlackBerry 10', 'Windows Phone 7', 'Windows Phone 8', 'Windows', 'Firefox OS', 'Browser']

View File

@@ -160,6 +160,7 @@ import { Observable } from 'rxjs/Observable';
*
*/
@Plugin({
name: 'BLE',
plugin: 'cordova-plugin-ble-central',
pluginRef: 'ble',
repo: 'https://github.com/don/cordova-plugin-ble-central',
@@ -207,6 +208,19 @@ export class BLE {
})
static startScan(services: string[]): Observable<any> { return; }
/**
* 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}
* @return Returns an Observable that notifies of each peripheral discovered.
*/
@Cordova({
observable: true,
clearFunction: 'stopScan',
clearWithArgs: true
})
static startScanWithOptions(services: string[], options: {reportDuplicates?: boolean} | any): Observable<any> { return; }
/**
* Stop a scan started by `startScan`.
*
@@ -387,17 +401,10 @@ export class BLE {
/**
* Report if bluetooth is enabled.
*
* @usage
* ```
* BLE.isEnabled().then(
* () => { console.log('enabled'); },
* () => { console.log('not enabled'); }
* );
* ```
* @return Returns a Promise.
* @return {Promise<void>} Returns a Promise that resolves if Bluetooth is enabled, and rejects if disabled.
*/
@Cordova()
static isEnabled(): Promise<any> { return; }
static isEnabled(): Promise<void> { return; }
/**
* Open System Bluetooth settings (Android only).

View File

@@ -28,6 +28,7 @@ import { Observable } from 'rxjs/Observable';
* ```
*/
@Plugin({
name: 'BluetoothSerial',
repo: 'https://github.com/don/BluetoothSerial',
plugin: 'cordova-plugin-bluetooth-serial',
pluginRef: 'bluetoothSerial',

View File

@@ -18,6 +18,7 @@ import { Cordova, Plugin } from './plugin';
*
*/
@Plugin({
name: 'Brightness',
plugin: 'cordova-plugin-brightness',
pluginRef: 'cordova.plugins.brightness',
repo: 'https://github.com/mgcrea/cordova-plugin-brightness',

View File

@@ -5,6 +5,7 @@ import { Cordova, Plugin } from './plugin';
* @private
*/
export interface CalendarOptions {
id?: string;
firstReminderMinutes?: number;
secondReminderMinutes?: number;
recurrence?: string; // options are: 'daily', 'weekly', 'monthly', 'yearly'
@@ -37,6 +38,7 @@ export interface CalendarOptions {
*
*/
@Plugin({
name: 'Calendar',
plugin: 'cordova-plugin-calendar',
pluginRef: 'plugins.calendar',
repo: 'https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin',
@@ -52,7 +54,7 @@ export class Calendar {
* - You're using Android < 6, or
* - You've already granted permission
*
* If this returns false, you should call `requestReadWritePermissions` function
* If this returns false, you should call the `requestReadWritePermission` function
* @returns {Promise<boolean>}
*/
@Cordova()
@@ -336,7 +338,8 @@ export class Calendar {
* @param {string} [newNotes] The new event notes
* @param {Date} [newStartDate] The new event start date
* @param {Date} [newEndDate] The new event end date
* @param {CalendarOptions} [options] Additional options, see `getCalendarOptions`
* @param {CalendarOptions} [filterOptions] Event Options, see `getCalendarOptions`
* @param {CalendarOptions} [newOptions] New event options, see `getCalendarOptions`
* @return Returns a Promise
*/
@Cordova()
@@ -351,8 +354,9 @@ export class Calendar {
newNotes?: string,
newStartDate?: Date,
newEndDate?: Date,
options?: CalendarOptions
) { return; }
filterOptions?: CalendarOptions,
newOptions?: CalendarOptions
): Promise<any> { return; }
/**
* Delete an event.

View File

@@ -16,6 +16,7 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'CallNumber',
plugin: 'call-number',
pluginRef: 'plugins.CallNumber',
repo: 'https://github.com/Rohfosho/CordovaCallNumberPlugin',

View File

@@ -19,7 +19,7 @@ export interface CameraPreviewSize {
* @description
* Showing camera preview in HTML
*
* For more info, please see the [Cordova Camera Preview Plugin Docs](https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview).
* For more info, please see the [Cordova Camera Preview Plugin Docs](https://github.com/westonganger/cordova-plugin-camera-preview).
*
* @usage
* ```
@@ -69,9 +69,10 @@ export interface CameraPreviewSize {
*
*/
@Plugin({
name: 'CameraPreview',
plugin: 'cordova-plugin-camera-preview',
pluginRef: 'cordova.plugins.camerapreview',
repo: 'https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview',
repo: 'https://github.com/westonganger/cordova-plugin-camera-preview',
platforms: ['Android', 'iOS']
})
export class CameraPreview {
@@ -139,14 +140,6 @@ export class CameraPreview {
})
static hide(): void { };
/**
* Set the default mode for the Flash.
*/
// @Cordova({
// sync: true
// })
// static setFlashMode(mode: number): void { };
/**
* Set camera color effect.
*/
@@ -154,15 +147,4 @@ export class CameraPreview {
sync: true
})
static setColorEffect(effect: string): void { };
/**
* @private
* @enum {number}
*/
static FlashMode = {
OFF: 0,
ON: 1,
AUTO: 2
};
}

View File

@@ -6,16 +6,16 @@ export interface CameraOptions {
quality?: number;
/**
* Choose the format of the return value.
* Defined in navigator.camera.DestinationType. Default is FILE_URI.
* DATA_URL : 0, Return image as base64-encoded string
* FILE_URI : 1, Return image file URI
* Defined in Camera.DestinationType. Default is FILE_URI.
* DATA_URL : 0, Return image as base64-encoded string,
* FILE_URI : 1, Return image file URI,
* NATIVE_URI : 2 Return image native URI
* (e.g., assets-library:// on iOS or content:// on Android)
*/
destinationType?: number;
/**
* Set the source of the picture.
* Defined in navigator.camera.PictureSourceType. Default is CAMERA.
* Defined in Camera.PictureSourceType. Default is CAMERA.
* PHOTOLIBRARY : 0,
* CAMERA : 1,
* SAVEDPHOTOALBUM : 2
@@ -25,7 +25,7 @@ export interface CameraOptions {
allowEdit?: boolean;
/**
* Choose the returned image file's encoding.
* Defined in navigator.camera.EncodingType. Default is JPEG
* Defined in Camera.EncodingType. Default is JPEG
* JPEG : 0 Return JPEG encoded image
* PNG : 1 Return PNG encoded image
*/
@@ -42,7 +42,7 @@ export interface CameraOptions {
targetHeight?: number;
/**
* Set the type of media to select from. Only works when PictureSourceType
* is PHOTOLIBRARY or SAVEDPHOTOALBUM. Defined in nagivator.camera.MediaType
* is PHOTOLIBRARY or SAVEDPHOTOALBUM. Defined in Camera.MediaType
* PICTURE: 0 allow selection of still pictures only. DEFAULT.
* Will return format specified via DestinationType
* VIDEO: 1 allow selection of video only, WILL ALWAYS RETURN FILE_URI
@@ -55,7 +55,7 @@ export interface CameraOptions {
saveToPhotoAlbum?: boolean;
/**
* Choose the camera to use (front- or back-facing).
* Defined in navigator.camera.Direction. Default is BACK.
* Defined in Camera.Direction. Default is BACK.
* FRONT: 0
* BACK: 1
*/
@@ -105,8 +105,12 @@ export interface CameraPopoverOptions {
* // Handle error
* });
* ```
* @interfaces
* CameraOptions
* CameraPopoverOptions
*/
@Plugin({
name: 'Camera',
plugin: 'cordova-plugin-camera',
pluginRef: 'navigator.camera',
repo: 'https://github.com/apache/cordova-plugin-camera',

View File

@@ -25,6 +25,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'CardIO',
plugin: 'https://github.com/card-io/card.io-Cordova-Plugin',
pluginRef: 'CardIO',
repo: 'https://github.com/card-io/card.io-Cordova-Plugin',

View File

@@ -28,6 +28,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'Clipboard',
plugin: 'https://github.com/VersoSolutions/CordovaClipboard.git',
pluginRef: 'cordova.plugins.clipboard',
repo: 'https://github.com/VersoSolutions/CordovaClipboard',

View File

@@ -420,6 +420,7 @@ export interface DownloadProgress {
* ```
*/
@Plugin({
name: 'CodePush',
plugin: 'cordova-plugin-code-push',
pluginRef: 'codePush',
repo: 'https://github.com/Microsoft/cordova-plugin-code-push',

View File

@@ -1,9 +1,11 @@
import { Cordova, CordovaInstance, InstanceProperty, Plugin } from './plugin';
declare var window: any,
navigator: any;
/**
* @private
*/
export interface IContactProperties {
/** A globally unique identifier. */
id?: string;
@@ -75,14 +77,20 @@ export class Contact implements IContactProperties {
save(): Promise<any> { return; }
}
interface IContactError {
/**
* @private
*/
export interface IContactError {
/** Error code */
code: number;
/** Error message */
message: string;
}
declare var ContactError: {
/**
* @private
*/
export declare var ContactError: {
new (code: number): IContactError;
UNKNOWN_ERROR: number;
INVALID_ARGUMENT_ERROR: number;
@@ -186,13 +194,21 @@ export class ContactAddress implements IContactAddress {
this._objectInstance = new window.ContactAddress(pref, type, formatted, streetAddress, locality, region, postalCode, country);
}
/** Set to true if this ContactAddress contains the user's preferred value. */
@InstanceProperty get pref(): boolean { return; }
/** A string indicating what type of field this is, home for example. */
@InstanceProperty get type(): string { return; }
/** The full address formatted for display. */
@InstanceProperty get formatted(): string { return; }
/** The full street address. */
@InstanceProperty get streetAddress(): string { return; }
/** The city or locality. */
@InstanceProperty get locality(): string { return; }
/** The state or region. */
@InstanceProperty get region(): string { return; }
/** The zip code or postal code. */
@InstanceProperty get postalCode(): string { return; }
/** The country name. */
@InstanceProperty get country(): string { return; }
}
@@ -217,10 +233,15 @@ export class ContactOrganization implements IContactOrganization {
constructor() {
this._objectInstance = new window.ContactOrganization();
}
/** Set to true if this ContactOrganization contains the user's preferred value. */
@InstanceProperty get pref(): boolean { return; }
/** A string that indicates what type of field this is, home for example. */
@InstanceProperty get type(): string { return; }
/** The name of the organization. */
@InstanceProperty get name(): string { return; }
/** The department the contract works for. */
@InstanceProperty get department(): string { return; }
/** The contact's title at the organization. */
@InstanceProperty get title(): string { return; }
}
@@ -232,6 +253,10 @@ export interface IContactFindOptions {
multiple?: boolean;
/* Contact fields to be returned back. If specified, the resulting Contact object only features values for these fields. */
desiredFields?: string[];
/**
* (Android only): Filters the search to only return contacts with a phone number informed.
*/
hasPhoneNumber?: boolean;
}
/**
@@ -244,9 +269,24 @@ export class ContactFindOptions implements IContactFindOptions {
this._objectInstance = new window.ContactFindOptions();
}
/**
* The search string used to find navigator.contacts. (Default: "")
*/
@InstanceProperty get filter(): string { return; }
/**
* Determines if the find operation returns multiple navigator.contacts. (Default: false)
*/
@InstanceProperty get multiple(): boolean { return; }
/**
* Contact fields to be returned back. If specified, the resulting Contact object only features values for these fields.
*/
@InstanceProperty get desiredFields(): any { return; }
/**
* (Android only): Filters the search to only return contacts with a phone number informed.
*/
@InstanceProperty get hasPhoneNumber(): boolean { return; }
}
@@ -268,10 +308,15 @@ export class ContactFindOptions implements IContactFindOptions {
* (error: any) => console.error('Error saving contact.', error)
* );
* ```
*
*
* @interfaces
* IContactProperties
* @classes
* ContactFindOptions
* ContactOrganization
* ContactAddress
*/
@Plugin({
name: 'Contacts',
plugin: 'cordova-plugin-contacts',
pluginRef: 'navigator.contacts',
repo: 'https://github.com/apache/cordova-plugin-contacts'

View File

@@ -16,6 +16,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'Crop',
plugin: 'cordova-plugin-crop',
pluginRef: 'plugins',
repo: 'https://github.com/jeduan/cordova-plugin-crop'

View File

@@ -1,66 +1,104 @@
import { Cordova, Plugin } from './plugin';
import {Cordova, Plugin} from './plugin';
export interface DatePickerOptions {
/**
* Platforms: iOS, Android, Windows
* The mode of the date picker
* Values: date | time | datetime
*/
mode: string;
/**
* Platforms: iOS, Android, Windows
* Selected date
*/
date: Date | string | number;
/**
* Platforms: iOS, Android, Windows
* Minimum date
* Type: Date | empty String
* Default: empty String
*/
minDate?: Date | string | number;
/**
* Platforms?: iOS, Android, Windows
* Maximum date
* Type?: Date | empty String
* Default?: empty String
*/
maxDate?: Date | string | number;
/**
* Platforms?: Android
* Label for the dialog title. If empty, uses android default (Set date/Set time).
* Type?: String
* Default?: empty String
*/
titleText?: string;
/**
* Platforms?: Android
* Label of BUTTON_POSITIVE (done button) on Android
*/
okText?: string;
// TODO complete documentation here, and copy params & docs to main plugin docs
/**
* Label of BUTTON_NEGATIVE (cancel button). If empty, uses android.R.string.cancel.
*/
cancelText?: string;
/**
* Label of today button. If empty, doesn't show the option to select current date.
*/
todayText?: string;
/**
* Label of now button. If empty, doesn't show the option to select current time.
*/
nowText?: string;
/**
* Shows time dialog in 24 hours format.
*/
is24Hour?: boolean;
/**
* Choose the Android theme for the picker. You can use the DatePicker.ANDROID_THEMES property.
* Values: 1: THEME_TRADITIONAL | 2: THEME_HOLO_DARK | 3: THEME_HOLO_LIGHT | 4: THEME_DEVICE_DEFAULT_DARK | 5: THEME_DEVICE_DEFAULT_LIGHT
*/
androidTheme?: number;
/**
* Shows or hide dates earlier then selected date.
*/
allowOldDate?: boolean;
/**
* Shows or hide dates after selected date.
*/
allowFutureDates?: boolean;
/**
* Label of done button.
*/
doneButtonLabel?: string;
/**
* Hex color of done button.
*/
doneButtonColor?: string;
/**
* Label of cancel button.
*/
cancelButtonLabel?: string;
/**
* Hex color of cancel button.
*/
cancelButtonColor?: string;
/**
* X position of date picker. The position is absolute to the root view of the application.
*/
x?: number;
/**
* Y position of date picker. The position is absolute to the root view of the application.
*/
y?: number;
/**
* Interval between options in the minute section of the date picker.
*/
minuteInterval?: number;
/**
* Force the UIPopoverArrowDirection enum. The value any will revert to default UIPopoverArrowDirectionAny and let the app choose the proper direction itself.
*/
popoverArrowDirection?: string;
/**
* Force locale for datePicker.
*/
locale?: string;
}
@@ -86,21 +124,36 @@ export interface DatePickerOptions {
* err => console.log('Error occurred while getting date: ', err)
* );
* ```
*
* @interfaces
* DatePickerOptions
*/
@Plugin({
name: 'DatePicker',
plugin: 'cordova-plugin-datepicker',
pluginRef: 'datePicker',
repo: 'https://github.com/VitaliiBlagodir/cordova-plugin-datepicker'
})
export class DatePicker {
/**
* @private
*/
static ANDROID_THEMES = {
THEME_TRADITIONAL: 1,
THEME_HOLO_DARK: 2,
THEME_HOLO_LIGHT: 3,
THEME_DEVICE_DEFAULT_DARK: 4,
THEME_DEVICE_DEFAULT_LIGHT: 5
};
/**
* Shows the date and/or time picker dialog(s)
* @param {DatePickerOptions} options Options for the date picker.
* @returns {Promise<Date>} Returns a promise that resolves with the picked date and/or time, or rejects with an error.
*/
@Cordova()
static show(options: DatePickerOptions): Promise<Date> { return; }
static show(options: DatePickerOptions): Promise<Date> {
return;
}
}

View File

@@ -31,6 +31,7 @@ import { Observable } from 'rxjs/Observable';
* ```
*/
@Plugin({
name: 'DBMeter',
plugin: 'cordova-plugin-dbmeter',
pluginRef: 'DBMeter',
repo: 'https://github.com/akofman/cordova-plugin-dbmeter',

View File

@@ -28,11 +28,38 @@ export interface DeeplinkMatch {
*
* @usage
* ```typescript
* import { IonicDeeplinks } from 'ionic-native';
* import { Deeplinks } from 'ionic-native';
*
* Deeplinks.route({
'/about-us': AboutPage,
'/universal-links-test': AboutPage,
'/products/:productId': ProductPage
}).subscribe((match) => {
// match.$route - the route we matched, which is the matched entry from the arguments to route()
// match.$args - the args passed in the link
// match.$link - the full link data
console.log('Successfully matched route', match);
}, (nomatch) => {
// nomatch.$link - the full link data
console.error('Got a deeplink that didn\'t match', nomatch);
});
* ```
*
* Alternatively, if you're using Ionic 2, there's a convenience method that takes a reference to a `NavController` and handles
* the actual navigation for you:
*
* ```typescript
* Deeplinks.routeWithNavController(this.navController, {
'/about-us': AboutPage,
'/products/:productId': ProductPage
});
* ```
*
* See the [Ionic 2 Deeplinks Demo](https://github.com/driftyco/ionic2-deeplinks-demo/blob/master/app/app.ts) for an example of how to
* retrieve the `NavController` reference at runtime.
*/
@Plugin({
name: 'Deeplinks',
plugin: 'ionic-plugin-deeplinks',
pluginRef: 'IonicDeeplink',
repo: 'https://github.com/driftyco/ionic-plugin-deeplinks',
@@ -48,8 +75,8 @@ export class Deeplinks {
* paths takes an object of the form { 'path': data }. If a deeplink
* matches the path, the resulting path-data pair will be returned in the
* promise result which you can then use to navigate in the app as you see fit.
* @returns {Promise} Returns a Promise that resolves when a deeplink comes through, and
* is rejected if a deeplink comes through that does not match a given path.
* @returns {Observable} Returns an Observable that is called each time a deeplink comes through, and
* errors if a deeplink comes through that does not match a given path.
*/
@Cordova({
observable: true
@@ -71,8 +98,8 @@ export class Deeplinks {
* matches the path, the resulting path-data pair will be returned in the
* promise result which you can then use to navigate in the app as you see fit.
*
* @returns {Promise} Returns a Promise that resolves when a deeplink comes through, and
* is rejected if a deeplink comes through that does not match a given path.
* @returns {Observable} Returns an Observable that resolves each time a deeplink comes through, and
* errors if a deeplink comes through that does not match a given path.
*/
@Cordova({
observable: true

View File

@@ -0,0 +1,55 @@
import { Plugin, Cordova } from './plugin';
/**
* @name DeviceFeedback
* @description
*
* Plugin that lets you provide haptic or acoustic feedback on Android devices.
*
* @usage
* ```
* import { DeviceFeedback } from 'ionic-native';
*
* DeviceFeedback.acoustic();
*
* DeviceFeedback.haptic(0);
*
* DeviceFeedback.isFeedbackEnabled()
* .then((feedback) => {
* console.log(feedback);
* // {
* // acoustic: true,
* // haptic: true
* // }
* });
*
* ```
*/
@Plugin({
name: 'DeviceFeedback',
plugin: 'cordova-plugin-velda-devicefeedback',
pluginRef: 'plugins.deviceFeedback',
repo: 'https://github.com/VVelda/device-feedback',
platforms: ['Android']
})
export class DeviceFeedback {
/**
* Provide sound feedback to user, nevertheless respect user's settings and current active device profile as native feedback do.
*/
@Cordova({ sync: true })
static acoustic(): void { }
/**
* 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.
*/
@Cordova({ sync: true })
static haptic(type: number): void { }
/**
* Check if haptic and acoustic feedback is enabled by user settings.
*/
@Cordova()
static isFeedbackEnabled(): Promise<{ haptic: boolean; acoustic: boolean; }> { return; }
}

View File

@@ -41,6 +41,7 @@ export interface Device {
* ```
*/
@Plugin({
name: 'Device',
plugin: 'cordova-plugin-device',
pluginRef: 'device',
repo: 'https://github.com/apache/cordova-plugin-device'

View File

@@ -2,6 +2,7 @@ import { Cordova, Plugin } from './plugin';
@Plugin({
name: 'DeviceAccounts',
plugin: 'https://github.com/loicknuchel/cordova-device-accounts.git',
pluginRef: 'plugins.DeviceAccounts',
repo: 'https://github.com/loicknuchel/cordova-device-accounts',

View File

@@ -62,6 +62,7 @@ export interface AccelerometerOptions {
* ```
*/
@Plugin({
name: 'DeviceMotion',
plugin: 'cordova-plugin-device-motion',
pluginRef: 'navigator.accelerometer',
repo: 'https://github.com/apache/cordova-plugin-device-motion'

View File

@@ -67,6 +67,7 @@ export interface CompassOptions {
* ```
*/
@Plugin({
name: 'DeviceOrientation',
plugin: 'cordova-plugin-device-orientation',
pluginRef: 'navigator.compass',
repo: 'https://github.com/apache/cordova-plugin-device-orientation'

View File

@@ -29,6 +29,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'Diagnostic',
plugin: 'cordova.plugins.diagnostic',
pluginRef: 'cordova.plugins.diagnostic',
repo: 'https://github.com/dpa99c/cordova-diagnostic-plugin'
@@ -279,7 +280,7 @@ export class Diagnostic {
* @returns {Promise<any>}
*/
@Cordova({ platforms: ['Android', 'iOS'] })
static getContactsAuthroizationStatus(): Promise<any> { return; }
static getContactsAuthorizationStatus(): Promise<any> { return; }
/**
* Requests contacts authorization for the application.
@@ -440,6 +441,24 @@ export class Diagnostic {
@Cordova({ platforms: ['Android'], callbackOrder: 'reverse' })
static requestRuntimePermissions(permissions: any[]): Promise<any> { return; }
/**
* Indicates if the plugin is currently requesting a runtime permission via the native API.
* Note that only one request can be made concurrently because the native API cannot handle concurrent requests,
* so the plugin will invoke the error callback if attempting to make more than one simultaneous request.
* Multiple permission requests should be grouped into a single call since the native API is setup to handle batch requests of multiple permission groups.
* @return {boolean}
*/
@Cordova({ sync: true })
static 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}
*/
@Cordova({ sync: true })
static registerPermissionRequestCompleteHandler(handler: Function): void { return; }
/**
* Checks if the device setting for Bluetooth is switched on.
* This requires `BLUETOOTH` permission on Android

View File

@@ -32,6 +32,7 @@ export interface PromptCallback {
* ```
*/
@Plugin({
name: 'Dialogs',
plugin: 'cordova-plugin-dialogs',
pluginRef: 'navigator.notification',
repo: 'https://github.com/apache/cordova-plugin-dialogs.git'

View File

@@ -7,7 +7,7 @@ declare var cordova: any;
* @name Email Composer
* @description
*
* Requires Cordova plugin: cordova-plugin-email-composer. For more info, please see the [Email Composer plugin docs](https://github.com/katzer/cordova-plugin-email-composer).
* Requires Cordova plugin: cordova-plugin-email-composer. For more info, please see the [Email Composer plugin docs](https://github.com/hypery2k/cordova-email-plugin).
*
* DISCLAIMER: This plugin is experiencing issues with the latest versions of Cordova. Use at your own risk. Functionality is not guaranteed. Please stay tuned for a more stable version.
* A good alternative to this plugin is the social sharing plugin.
@@ -44,6 +44,7 @@ declare var cordova: any;
* ```
*/
@Plugin({
name: 'EmailComposer',
plugin: 'cordova-plugin-email',
pluginRef: 'cordova.plugins.email',
repo: 'https://github.com/hypery2k/cordova-email-plugin',

View File

@@ -9,6 +9,7 @@ import { Observable } from 'rxjs/Observable';
*
*/
@Plugin({
name: 'EstimoteBeacons',
plugin: 'cordova-plugin-estimote',
pluginRef: 'estimote.beacons',
repo: 'https://github.com/evothings/phonegap-estimotebeacons',
@@ -272,7 +273,7 @@ export class EstimoteBeacons {
*
* @usage
* ```
* let region: BeaconRegion = {} // Empty region matches all beacons.
* let region: EstimoteBeaconRegion = {} // Empty region matches all beacons.
* EstimoteBeacons.startRangingBeaconsInRegion(region).subscribe(info => {
* console.log(JSON.stringify(info));
* });
@@ -280,7 +281,7 @@ export class EstimoteBeacons {
* EstimoteBeacons.stopRangingBeaconsInRegion(region).then(() => { console.log('scan stopped'); });
* }, 5000);
* ```
* @param region {BeaconRegion} Dictionary with region properties (mandatory).
* @param region {EstimoteBeaconRegion} Dictionary with region properties (mandatory).
* @return Returns an Observable that notifies of each beacon discovered.
*/
@Cordova({
@@ -288,14 +289,14 @@ export class EstimoteBeacons {
clearFunction: 'stopRangingBeaconsInRegion',
clearWithArgs: true
})
static startRangingBeaconsInRegion(region: BeaconRegion): Observable<any> { return; }
static startRangingBeaconsInRegion(region: EstimoteBeaconRegion): Observable<any> { return; }
/**
* Stop ranging beacons. Available on iOS and Android.
*
* @usage
* ```
* let region: BeaconRegion = {} // Empty region matches all beacons.
* let region: EstimoteBeaconRegion = {} // Empty region matches all beacons.
* EstimoteBeacons.startRangingBeaconsInRegion(region).subscribe(info => {
* console.log(JSON.stringify(info));
* });
@@ -303,11 +304,11 @@ export class EstimoteBeacons {
* EstimoteBeacons.stopRangingBeaconsInRegion(region).then(() => { console.log('scan stopped'); });
* }, 5000);
* ```
* @param region {BeaconRegion} Dictionary with region properties (mandatory).
* @param region {EstimoteBeaconRegion} Dictionary with region properties (mandatory).
* @return returns a Promise.
*/
@Cordova()
static stopRangingBeaconsInRegion(region: BeaconRegion): Promise<any> { return; }
static stopRangingBeaconsInRegion(region: EstimoteBeaconRegion): Promise<any> { return; }
/**
* Start ranging secure beacons. Available on iOS.
@@ -321,7 +322,7 @@ export class EstimoteBeacons {
clearFunction: 'stopRangingSecureBeaconsInRegion',
clearWithArgs: true
})
static startRangingSecureBeaconsInRegion(region: BeaconRegion): Observable<any> { return; }
static startRangingSecureBeaconsInRegion(region: EstimoteBeaconRegion): Observable<any> { return; }
/**
* Stop ranging secure beacons. Available on iOS.
@@ -329,19 +330,19 @@ export class EstimoteBeacons {
* {@link EstimoteBeacons.stopRangingBeaconsInRegion}.
*/
@Cordova()
static stopRangingSecureBeaconsInRegion(region: BeaconRegion): Promise<any> { return; }
static stopRangingSecureBeaconsInRegion(region: EstimoteBeaconRegion): Promise<any> { return; }
/**
* Start monitoring beacons. Available on iOS and Android.
*
* @usage
* ```
* let region: BeaconRegion = {} // Empty region matches all beacons.
* let region: EstimoteBeaconRegion = {} // Empty region matches all beacons.
* EstimoteBeacons.startMonitoringForRegion(region).subscribe(state => {
* console.log('Region state: ' + JSON.stringify(state));
* });
* ```
* @param region {BeaconRegion} Dictionary with region properties (mandatory).
* @param region {EstimoteBeaconRegion} Dictionary with region properties (mandatory).
* @param [notifyEntryStateOnDisplay=false] {boolean} 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}
@@ -355,21 +356,21 @@ export class EstimoteBeacons {
successIndex: 1,
errorIndex: 2
})
static startMonitoringForRegion(region: BeaconRegion, notifyEntryStateOnDisplay: boolean): Observable<any> { return; }
static startMonitoringForRegion(region: EstimoteBeaconRegion, notifyEntryStateOnDisplay: boolean): Observable<any> { return; }
/**
* Stop monitoring beacons. Available on iOS and Android.
*
* @usage
* ```
* let region: BeaconRegion = {} // Empty region matches all beacons.
* let region: EstimoteBeaconRegion = {} // Empty region matches all beacons.
* EstimoteBeacons.stopMonitoringForRegion(region).then(() => { console.log('monitoring is stopped'); });
* ```
* @param region {BeaconRegion} Dictionary with region properties (mandatory).
* @param region {EstimoteBeaconRegion} Dictionary with region properties (mandatory).
* @return returns a Promise.
*/
@Cordova()
static stopMonitoringForRegion(region: BeaconRegion): Promise<any> { return; }
static stopMonitoringForRegion(region: EstimoteBeaconRegion): Promise<any> { return; }
/**
* Start monitoring secure beacons. Available on iOS.
@@ -378,6 +379,8 @@ export class EstimoteBeacons {
* 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}
*/
@Cordova({
observable: true,
@@ -386,16 +389,17 @@ export class EstimoteBeacons {
successIndex: 1,
errorIndex: 2
})
static startSecureMonitoringForRegion(region: BeaconRegion, notifyEntryStateOnDisplay: boolean): Observable<any> { return; }
static 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
*/
@Cordova()
static stopSecureMonitoringForRegion(region: BeaconRegion): Promise<any> { return; }
static stopSecureMonitoringForRegion(region: EstimoteBeaconRegion): Promise<any> { return; }
/**
* Connect to Estimote Beacon. Available on Android.
@@ -473,7 +477,7 @@ export class EstimoteBeacons {
}
export interface BeaconRegion {
export interface EstimoteBeaconRegion {
state?: string;
major: number;
minor: number;

View File

@@ -78,6 +78,7 @@ import { Cordova, Plugin } from './plugin';
*
*/
@Plugin({
name: 'Facebook',
plugin: 'cordova-plugin-facebook4',
pluginRef: 'facebookConnectPlugin',
repo: 'https://github.com/jeduan/cordova-plugin-facebook4',

View File

@@ -16,6 +16,7 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'FileChooser',
plugin: 'http://github.com/don/cordova-filechooser.git',
pluginRef: 'fileChooser',
repo: 'https://github.com/don/cordova-filechooser',

View File

@@ -13,6 +13,7 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'FileOpener',
plugin: 'cordova-plugin-file-opener2',
pluginRef: 'cordova.plugins.fileOpener2',
repo: 'https://github.com/pwlin/cordova-plugin-file-opener2'

View File

@@ -1,4 +1,4 @@
import { Plugin, Cordova } from './plugin';
import { Plugin, pluginWarn } from './plugin';
declare var window: any;
declare var cordova: any;
@@ -301,10 +301,10 @@ export interface FileReader {
onabort: (evt: ProgressEvent) => void;
abort(): void;
readAsText(fe: File, encoding?: string): void;
readAsDataURL(fe: File): void;
readAsBinaryString(fe: File): void;
readAsArrayBuffer(fe: File): void;
readAsText(fe: File | Blob, encoding?: string): void;
readAsDataURL(fe: File | Blob): void;
readAsBinaryString(fe: File | Blob): void;
readAsArrayBuffer(fe: File | Blob): void;
}
declare var FileReader: {
@@ -337,6 +337,7 @@ declare var FileError: {
PATH_EXISTS_ERR: number;
};
/**
* @name File
* @description
@@ -359,6 +360,7 @@ declare var FileError: {
* It also implements the FileWriter spec : http://dev.w3.org/2009/dap/file-system/file-writer.html
*/
@Plugin({
name: 'File',
plugin: 'cordova-plugin-file',
pluginRef: 'cordova.file',
repo: 'https://github.com/apache/cordova-plugin-file'
@@ -381,9 +383,22 @@ export class File {
14: 'DIR_READ_ERR',
};
@Cordova()
/**
* Get free disk space
* @returns {Promise<number>} Returns a promise that resolves with the remaining free disk space
*/
static getFreeDiskSpace(): Promise<number> {
return;
return new Promise<any>((resolve, reject) => {
if (!cordova || !cordova.exec) {
pluginWarn({
name: 'File',
plugin: 'cordova-plugin-file'
});
reject({ error: 'plugin_not_installed' });
} else {
cordova.exec(resolve, reject, 'File', 'getFreeDiskSpace', []);
}
});
}
/**
@@ -393,7 +408,6 @@ export class File {
* @param {string} dir Name of directory to check
* @return {Promise<boolean|FileError>} Returns a Promise that resolves to true if the directory exists or rejects with an error.
*/
static checkDir(path: string, dir: string): Promise<boolean|FileError> {
if ((/^\//.test(dir))) {
let err = new FileError(5);
@@ -418,7 +432,6 @@ export class File {
* @param {boolean} replace If true, replaces file with same name. If false returns error
* @return {Promise<DirectoryEntry|FileError>} Returns a Promise that resolves with a DirectoryEntry or rejects with an error.
*/
static createDir(path: string, dirName: string, replace: boolean): Promise<DirectoryEntry|FileError> {
if ((/^\//.test(dirName))) {
let err = new FileError(5);
@@ -447,7 +460,6 @@ export class File {
* @param {string} dirName The directory name
* @return {Promise<RemoveResult|FileError>} Returns a Promise that resolves to a RemoveResult or rejects with an error.
*/
static removeDir(path: string, dirName: string): Promise<RemoveResult|FileError> {
if ((/^\//.test(dirName))) {
let err = new FileError(5);
@@ -473,7 +485,6 @@ export class File {
* @param {string} newDirName The destination directory name
* @return {Promise<DirectoryEntry|Entry|FileError>} Returns a Promise that resolves to the new DirectoryEntry object or rejects with an error.
*/
static moveDir(path: string, dirName: string, newPath: string, newDirName: string): Promise<DirectoryEntry|Entry|FileError> {
newDirName = newDirName || dirName;
@@ -530,7 +541,6 @@ export class File {
* @param {string} dirName Name of directory
* @return {Promise<Entry[]>} Returns a Promise that resolves to an array of Entry objects or rejects with an error.
*/
static listDir(path: string, dirName: string): Promise<Entry[]> {
if ((/^\//.test(dirName))) {
let err = new FileError(5);
@@ -555,7 +565,6 @@ export class File {
* @param {string} dirName Name of directory
* @return {Promise<RemoveResult>} Returns a Promise that resolves with a RemoveResult or rejects with an error.
*/
static removeRecursively(path: string, dirName: string): Promise<RemoveResult> {
if ((/^\//.test(dirName))) {
let err = new FileError(5);
@@ -579,7 +588,6 @@ export class File {
* @param {string} file Name of file to check
* @return {Promise<boolean|FileError>} Returns a Promise that resolves with a boolean or rejects with an error.
*/
static checkFile(path: string, file: string): Promise<boolean|FileError> {
if ((/^\//.test(file))) {
let err = new FileError(5);
@@ -637,7 +645,6 @@ export class File {
* @param {string} fileName Name of file to remove
* @return {Promise<RemoveResult|FileError>} Returns a Promise that resolves to a RemoveResult or rejects with an error.
*/
static removeFile(path: string, fileName: string): Promise<RemoveResult|FileError> {
if ((/^\//.test(fileName))) {
let err = new FileError(5);
@@ -659,38 +666,37 @@ export class File {
* @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above
* @param {string} fileName path relative to base path
* @param {string | Blob} text content or blob to write
* @param {boolean | WriteOptions} replaceOrOptions replace file if set to true. See WriteOptions for more information.
* @param {WriteOptions} options replace file if set to true. See WriteOptions for more information.
* @returns {Promise<void>} Returns a Promise that resolves or rejects with an error.
*/
static writeFile(path: string, fileName: string,
text: string | Blob, replaceOrOptions: boolean | WriteOptions): Promise<void> {
text: string | Blob, options: WriteOptions): Promise<void> {
if ((/^\//.test(fileName))) {
let err = new FileError(5);
err.message = 'file-name cannot start with \/';
return Promise.reject(err);
}
let opts: WriteOptions = {};
if (replaceOrOptions) {
if (typeof(replaceOrOptions) === 'boolean') {
opts.replace = <boolean>replaceOrOptions;
}
}
let getFileOpts: Flags = {
create: true,
exclusive: options.replace
};
return File.resolveDirectoryUrl(path)
.then((fse) => {
return File.getFile(fse, fileName, opts);
return File.getFile(fse, fileName, getFileOpts);
})
.then((fe) => {
return File.createWriter(fe);
})
.then((writer) => {
if (opts.append) {
if (options.append) {
writer.seek(writer.length);
}
if (opts.hasOwnProperty('truncate')) {
writer.truncate(opts.truncate);
if (options.truncate) {
writer.truncate(options.truncate);
}
return File.write(writer, text);
@@ -959,12 +965,14 @@ export class File {
}
/**
* @private
* Resolves a local file system URL
* @param fileUrl {string} file system url
* @returns {Promise<Entry>}
*/
private static resolveLocalFilesystemUrl(furl: string): Promise<Entry> {
static resolveLocalFilesystemUrl(fileUrl: string): Promise<Entry> {
return new Promise<Entry>((resolve, reject) => {
try {
window.resolveLocalFileSystemURL(furl, (entry) => {
window.resolveLocalFileSystemURL(fileUrl, (entry) => {
resolve(entry);
}, (err) => {
File.fillErrorMessage(err);
@@ -978,10 +986,12 @@ export class File {
}
/**
* @private
* Resolves a local directory url
* @param directoryUrl {string} directory system url
* @returns {Promise<DirectoryEntry>}
*/
private static resolveDirectoryUrl(durl: string): Promise<DirectoryEntry> {
return File.resolveLocalFilesystemUrl(durl)
static resolveDirectoryUrl(directoryUrl: string): Promise<DirectoryEntry> {
return File.resolveLocalFilesystemUrl(directoryUrl)
.then((de) => {
if (de.isDirectory) {
return <DirectoryEntry>de;
@@ -994,12 +1004,16 @@ export class File {
}
/**
* @private
* Get a directory
* @param directoryEntry {DirectoryEntry} Directory entry, obtained by resolveDirectoryUrl method
* @param directoryName {string} Directory name
* @param flags {Flags} Options
* @returns {Promise<DirectoryEntry>}
*/
private static getDirectory(fse: DirectoryEntry, dn: string, flags: Flags): Promise<DirectoryEntry> {
static getDirectory(directoryEntry: DirectoryEntry, directoryName: string, flags: Flags): Promise<DirectoryEntry> {
return new Promise<DirectoryEntry>((resolve, reject) => {
try {
fse.getDirectory(dn, flags, (de) => {
directoryEntry.getDirectory(directoryName, flags, (de) => {
resolve(de);
}, (err) => {
File.fillErrorMessage(err);
@@ -1013,14 +1027,16 @@ export class File {
}
/**
* @private
* Get a file
* @param directoryEntry {DirectoryEntry} Directory entry, obtained by resolveDirectoryUrl method
* @param fileName {string} File name
* @param flags {Flags} Options
* @returns {Promise<FileEntry>}
*/
private static getFile(fse: DirectoryEntry, fn: string, flags: Flags): Promise<FileEntry> {
static getFile(directoryEntry: DirectoryEntry, fileName: string, flags: Flags): Promise<FileEntry> {
return new Promise<FileEntry>((resolve, reject) => {
try {
fse.getFile(fn, flags, (fe) => {
resolve(fe);
}, (err) => {
directoryEntry.getFile(fileName, flags, resolve, (err) => {
File.fillErrorMessage(err);
reject(err);
});
@@ -1123,12 +1139,12 @@ export class File {
return this.writeFileInChunks(writer, gu);
}
return new Promise<void>((resolve, reject) => {
return new Promise<any>((resolve, reject) => {
writer.onwriteend = (evt) => {
if (writer.error) {
reject(writer.error);
} else {
resolve();
resolve(evt);
}
};
writer.write(gu);

35
src/plugins/filepath.ts Normal file
View File

@@ -0,0 +1,35 @@
import { Plugin, Cordova } from './plugin';
declare var window: any;
/**
* @name FilePath
* @description
*
* This plugin allows you to resolve the native filesystem path for Android content URIs and is based on code in the aFileChooser library.
*
* @usage
* ```
* import {FilePath} from 'ionic-native';
*
* FilePath.resolveNativePath(path)
* .then(filePath => console.log(filePath);
* .catch(err => console.log(err);
*
* ```
*/
@Plugin({
name: 'FilePath',
plugin: 'cordova-plugin-filepath',
pluginRef: 'window.FilePath',
repo: 'https://github.com/hiddentao/cordova-plugin-filepath',
platforms: ['Android']
})
export class FilePath {
/**
* Resolve native path for given content URL/path.
* @param {String} path Content URL/path.
*/
@Cordova()
static resolveNativePath(path: string): Promise<string> {return; }
}

View File

@@ -138,7 +138,7 @@ export interface FileTransferError {
* fileKey: 'file',
* fileName: 'name.jpg',
* headers: {}
* .....
* .....
* }
* fileTransfer.upload("<file path>", "<api endpoint>", options)
* .then((data) => {
@@ -148,10 +148,32 @@ export interface FileTransferError {
* })
* }
*
* // Cordova
* declare var cordova: any;
*
* download() {
* const fileTransfer = new Transfer();
* let url = 'http://www.example.com/file.pdf';
* fileTransfer.download(url, cordova.file.dataDirectory + 'file.pdf').then((entry) => {
* console.log('download complete: ' + entry.toURL());
* }, (error) => {
* // handle error
* });
* }
*
* ```
*
* Note: You will not see your documents using a file explorer on your device. Use adb:
*
* ```
* adb shell
* run-as com.your.app
* cd files
* ls
* ```
*/
@Plugin({
name: 'FileTransfer',
plugin: 'cordova-plugin-file-transfer',
pluginRef: 'FileTransfer',
repo: 'https://github.com/apache/cordova-plugin-file-transfer'

View File

@@ -16,6 +16,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'Flashlight',
plugin: 'cordova-plugin-flashlight',
pluginRef: 'window.plugins.flashlight',
repo: 'https://github.com/EddyVerbruggen/Flashlight-PhoneGap-Plugin.git'

View File

@@ -74,6 +74,7 @@ import { Observable } from 'rxjs/Observable';
declare var window: any;
@Plugin({
name: 'Geofence',
plugin: 'cordova-plugin-geofence',
pluginRef: 'geofence',
repo: 'https://github.com/cowbell/cordova-plugin-geofence/',
@@ -146,7 +147,7 @@ export class Geofence {
}
/**
* Called when the user clicks a geofence notification. iOS and Android only.
* Called when the user clicks a geofence notification. iOS and Android only.
*
* @return {Promise<Object>}
*/

View File

@@ -121,16 +121,25 @@ export interface GeolocationOptions {
* Geolocation.getCurrentPosition().then((resp) => {
* // resp.coords.latitude
* // resp.coords.longitude
* })
* }).catch((error) => {
* console.log('Error getting location', error);
* });
*
* let watch = Geolocation.watchPosition();
* watch.subscribe((data) => {
* // data can be a set of coordinates, or an error (if an error occurred).
* // data.coords.latitude
* // data.coords.longitude
* })
* });
* ```
* @interfaces
* Coordinates
* Geoposition
* PositionError
* GeolocationOptions
*/
@Plugin({
name: 'Geolocation',
plugin: 'cordova-plugin-geolocation',
pluginRef: 'navigator.geolocation',
repo: 'https://github.com/apache/cordova-plugin-geolocation'
@@ -165,7 +174,7 @@ export class Geolocation {
* @param {GeolocationOptions} options The [geolocation options](https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions).
* @return Returns an Observable that notifies with the [position](https://developer.mozilla.org/en-US/docs/Web/API/Position) of the device, or errors.
*/
static watchPosition(options?: GeolocationOptions): Observable<Geoposition | PositionError> {
static watchPosition(options?: GeolocationOptions): Observable<Geoposition & PositionError> {
return new Observable<Geoposition>(
(observer: any) => {
let watchId = navigator.geolocation.watchPosition(observer.next.bind(observer), observer.next.bind(observer), options);

View File

@@ -11,6 +11,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'Globalization',
plugin: 'cordova-plugin-globalization',
pluginRef: 'navigator.globalization',
repo: 'https://github.com/apache/cordova-plugin-globalization'

View File

@@ -12,11 +12,12 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
plugin: 'cordova-plugin-googleplus',
pluginRef: 'window.plugins.googleplus',
repo: 'https://github.com/EddyVerbruggen/cordova-plugin-googleplus',
platforms: ['Web', 'Android', 'iOS'],
install: 'ionic plugin add cordova-plugin-googleplus --variable REVERSED_CLIENT_ID=myreversedclientid'
name: 'GooglePlus',
plugin: 'cordova-plugin-googleplus',
pluginRef: 'window.plugins.googleplus',
repo: 'https://github.com/EddyVerbruggen/cordova-plugin-googleplus',
platforms: ['Web', 'Android', 'iOS'],
install: 'ionic plugin add cordova-plugin-googleplus --variable REVERSED_CLIENT_ID=myreversedclientid'
})
export class GooglePlus {

View File

@@ -13,8 +13,9 @@ declare var window;
* - (Android) Google Play Services SDK installed via [Android SDK Manager](https://developer.android.com/sdk/installing/adding-packages.html)
*/
@Plugin({
name: 'GoogleAnalytics',
plugin: 'cordova-plugin-google-analytics',
pluginRef: 'analytics',
pluginRef: 'ga',
repo: 'https://github.com/danwilson/google-analytics-plugin',
platforms: ['Android', 'iOS']
})
@@ -23,45 +24,128 @@ export class GoogleAnalytics {
* In your 'deviceready' handler, set up your Analytics tracker.
* https://developers.google.com/analytics/devguides/collection/analyticsjs/
* @param {string} id Your Google Analytics Mobile App property
* @return {Promise<any>}
*/
@Cordova()
static startTrackerWithId(id: string): Promise<any> { return; }
/**
* Enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more
* @param allow {boolean}
* @return {Promise<any>}
*/
@Cordova()
static setAllowIDFACollection(allow: boolean): Promise<any> { return; }
/**
* Set a UserId
* https://developers.google.com/analytics/devguides/collection/analyticsjs/user-id
* @param {string} id User ID
* @return {Promise<any>}
*/
@Cordova()
static setUserId(id: string): Promise<any> { return; }
/**
* Set a anonymize Ip address
* @param anonymize {boolean} Set to true to anonymize the IP Address
* @return {Promise<any>}
*/
@Cordova()
static setAnonymizeIp(anonymize: boolean): Promise<any> { return; }
/**
* Sets the app version
* @param appVersion {string} App version
* @return {Promise<any>}
*/
@Cordova()
static setAppVersion(appVersion: string): Promise<any> { return; }
/**
* Set OptOut
* @param optout {boolean}
* @return {Promise<any>}
*/
@Cordova()
static setOptOut(optout: boolean): Promise<any> { return; }
/**
* Enable verbose logging
* @return {Promise<any>}
*/
@Cordova()
static debugMode(): Promise<any> { return; }
/**
* Track custom metric
* @param key {string}
* @param value {any}
* @return {Promise<any>}
*/
@Cordova({
successIndex: 2,
errorIndex: 3
})
static trackMetric(key: string, value?: any): Promise<any> { return; }
/**
* Track a screen
* https://developers.google.com/analytics/devguides/collection/analyticsjs/screens
*
* @param {string} title Screen title
* @param {string} campaignUrl Campaign url for measuring referrals
* @param title {string} Screen title
* @param campaignUrl {string} Campaign url for measuring referrals
* @param newSession {boolean} Set to true to create a new session
* @return {Promise<any>}
*/
@Cordova({
successIndex: 3,
errorIndex: 4
})
static trackView(title: string, campaignUrl?: string, newSession?: boolean): Promise<any> { return; }
/**
* Add a Custom Dimension
* https://developers.google.com/analytics/devguides/platform/customdimsmets
* @param key {string}
* @param value {string}
* @return {Promise<any>}
*/
@Cordova()
static trackView(title: string, campaignUrl?: string): Promise<any> { return; }
static addCustomDimension(key: number, value: string): Promise<any> { return; }
/**
* Track an event
* https://developers.google.com/analytics/devguides/collection/analyticsjs/events
* @param {string} category
* @param {string} action
* @param {string} label
* @param {number} value
* @param category {string}
* @param action {string}
* @param label {string}
* @param value {number}
* @param newSession {boolean} Set to true to create a new session
* @return {Promise<any>}
*/
@Cordova()
static trackEvent(category: string, action: string, label?: string, value?: number): Promise<any> { return; }
@Cordova({
successIndex: 5,
errorIndex: 6
})
static trackEvent(category: string, action: string, label?: string, value?: number, newSession?: boolean): Promise<any> { return; }
/**
* Track an exception
* @param {string} description
* @param {boolean} fatal
* @param description {string}
* @param fatal {boolean}
* @return {Promise<any>}
*/
@Cordova()
static trackException(description: string, fatal: boolean): Promise<any> { return; }
/**
* Track User Timing (App Speed)
* @param {string} category
* @param {number} intervalInMilliseconds
* @param {string} variable
* @param {string} label
* @param category {string}
* @param intervalInMilliseconds {number}
* @param variable {string}
* @param label {string}
* @return {Promise<any>}
*/
@Cordova()
static trackTiming(category: string, intervalInMilliseconds: number, variable: string, label: string): Promise<any> { return; }
@@ -69,12 +153,13 @@ export class GoogleAnalytics {
/**
* Add a Transaction (Ecommerce)
* https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#addTrans
* @param {string} id
* @param {string} affiliation
* @param {number} revenue
* @param {number} tax
* @param {number} shipping
* @param {string} currencyCode
* @param id {string}
* @param affiliation {string}
* @param revenue {number}
* @param tax {number}
* @param shipping {number}
* @param currencyCode {string}
* @return {Promise<any>}
*/
@Cordova()
static addTransaction(id: string, affiliation: string, revenue: number, tax: number, shipping: number, currencyCode: string): Promise<any> { return; }
@@ -89,57 +174,15 @@ export class GoogleAnalytics {
* @param {number} price
* @param {number} quantity
* @param {string} currencyCode
* @return {Promise<any>}
*/
@Cordova()
static addTransactionItem(id: string, name: string, sku: string, category: string, price: number, quantity: number, currencyCode: string): Promise<any> { return; }
/**
* Add a Custom Dimension
* https://developers.google.com/analytics/devguides/platform/customdimsmets
* @param {string} key
* @param {string} value
*/
@Cordova()
static addCustomDimension(key: number, value: string): Promise<any> { return; }
/**
* Set a UserId
* https://developers.google.com/analytics/devguides/collection/analyticsjs/user-id
* @param {string} id
*/
@Cordova({sync: true})
static setUserId(id: string): void { }
/**
* Sets the app version
* @param appVersion
*/
@Cordova({sync: true})
static setAppVersion(appVersion: string): void { }
/**
* Set a anonymize Ip address
* @param anonymize
*/
@Cordova({sync: true})
static setAnonymizeIp(anonymize: boolean): void { }
/**
* Enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more
* @param allow
*/
@Cordova({sync: true})
static setAllowIDFACollection(allow: boolean): void { }
/**
* Enable verbose logging
*/
@Cordova({sync: true})
static debugMode(): Promise<any> { return; }
/**
* Enable/disable automatic reporting of uncaught exceptions
* @param {boolean} shouldEnable
* @param shouldEnable {boolean}
* @return {Promise<any>}
*/
@Cordova()
static enableUncaughtExceptionReporting(shouldEnable: boolean): Promise<any> { return; }

View File

@@ -1,11 +1,6 @@
import { Cordova, CordovaInstance, Plugin } from './plugin';
import { Cordova, CordovaInstance, Plugin, InstanceProperty, getPlugin, pluginWarn } from './plugin';
import { Observable } from 'rxjs/Observable';
/**
* @private
* Created by Ibrahim on 3/29/2016.
*/
declare var plugin: any;
/**
@@ -60,7 +55,7 @@ export const GoogleMapsAnimation = {
* let map = new GoogleMap(mapElement);
*
* // listen to MAP_READY event
* map.one(GoogleMapsEvent.MAP_READY).subscribe(() => console.log('Map is ready!'));
* map.one(GoogleMapsEvent.MAP_READY).then(() => console.log('Map is ready!'));
*
*
* // create LatLng object
@@ -89,6 +84,7 @@ export const GoogleMapsAnimation = {
* ```
*/
@Plugin({
name: 'GoogleMap',
pluginRef: 'plugin.google.maps.Map',
plugin: 'cordova-plugin-googlemaps',
repo: 'https://github.com/mapsplugin/cordova-plugin-googlemaps',
@@ -103,13 +99,20 @@ export class GoogleMap {
* @return {Promise<boolean>}
*/
@Cordova()
static isAvailable(): Promise<boolean> {
return;
}
static isAvailable(): Promise<boolean> { return; }
constructor(element: string|HTMLElement, options?: any) {
if (typeof element === 'string') element = document.getElementById(<string>element);
this._objectInstance = plugin.google.maps.Map.getMap(element, options);
if (!!getPlugin('plugin.google.maps.Map')) {
if (typeof element === 'string') {
element = document.getElementById(<string>element);
}
this._objectInstance = plugin.google.maps.Map.getMap(element, options);
} else {
pluginWarn({
name: 'GoogleMap',
plugin: 'plugin.google.maps.Map'
});
}
}
/**
@@ -118,6 +121,12 @@ export class GoogleMap {
* @return {Observable<any>}
*/
on(event: any): Observable<any> {
if (!this._objectInstance) {
return new Observable((observer) => {
observer.error({ error: 'plugin_not_installed' });
});
}
return new Observable(
(observer) => {
this._objectInstance.on(event, observer.next.bind(observer));
@@ -132,18 +141,19 @@ export class GoogleMap {
* @return {Promise<any>}
*/
one(event: any): Promise<any> {
if (!this._objectInstance) {
return Promise.reject({ error: 'plugin_not_installed' });
}
return new Promise<any>(
resolve => this._objectInstance.one(event, resolve)
);
}
@CordovaInstance({ sync: true })
setDebuggable(isDebuggable: boolean): void {
}
setDebuggable(isDebuggable: boolean): void { }
@CordovaInstance({ sync: true })
setClickable(isClickable: boolean): void {
}
setClickable(isClickable: boolean): void { }
/**
* Get the position of the camera.
@@ -151,9 +161,7 @@ export class GoogleMap {
* @return {Promise<CameraPosition>}
*/
@CordovaInstance()
getCameraPosition(): Promise<CameraPosition> {
return;
}
getCameraPosition(): Promise<CameraPosition> { return; }
/**
* Get the location of the user.
@@ -161,9 +169,7 @@ export class GoogleMap {
* @return {Promise<MyLocation>}
*/
@CordovaInstance()
getMyLocation(options?: MyLocationOptions): Promise<MyLocation> {
return;
}
getMyLocation(options?: MyLocationOptions): Promise<MyLocation> { return; }
/**
* Get the visible region.
@@ -171,38 +177,28 @@ export class GoogleMap {
* @return {Promise<VisibleRegion>}
*/
@CordovaInstance()
getVisibleRegion(): Promise<VisibleRegion> {
return;
}
getVisibleRegion(): Promise<VisibleRegion> { return; }
@CordovaInstance({ sync: true })
showDialog(): void {
}
showDialog(): void { }
@CordovaInstance({ sync: true })
closeDialog(): void {
}
closeDialog(): void { }
@CordovaInstance()
getLicenseInfo(): Promise<string> {
return;
}
getLicenseInfo(): Promise<string> { return; }
@CordovaInstance({ sync: true })
setCenter(latLng: GoogleMapsLatLng): void {
}
setCenter(latLng: GoogleMapsLatLng): void { }
@CordovaInstance({ sync: true })
setZoom(zoomLevel: number): void {
}
setZoom(zoomLevel: number): void { }
@CordovaInstance({ sync: true })
setMapTypeId(typeId: string): void {
}
setMapTypeId(typeId: string): void { }
@CordovaInstance({ sync: true })
setTilt(tiltLevel: number): void {
}
setTilt(tiltLevel: number): void { }
@CordovaInstance()
animateCamera(animateCameraOptions: AnimateCameraOptions): Promise<any> { return; }
@@ -211,26 +207,24 @@ export class GoogleMap {
moveCamera(cameraPosition: CameraPosition): Promise<any> { return; }
@CordovaInstance({ sync: true })
setMyLocationEnabled(enabled: boolean): void {
}
setMyLocationEnabled(enabled: boolean): void { }
@CordovaInstance({ sync: true })
setIndoorEnabled(enabled: boolean): void {
}
setIndoorEnabled(enabled: boolean): void { }
@CordovaInstance({ sync: true })
setTrafficEnabled(enabled: boolean): void {
}
setTrafficEnabled(enabled: boolean): void { }
@CordovaInstance({ sync: true })
setCompassEnabled(enabled: boolean): void {
}
setCompassEnabled(enabled: boolean): void { }
@CordovaInstance({ sync: true })
setAllGesturesEnabled(enabled: boolean): void {
}
setAllGesturesEnabled(enabled: boolean): void { }
addMarker(options: GoogleMapsMarkerOptions): Promise<GoogleMapsMarker> {
addMarker(options: GoogleMapsMarkerOptions): Promise<GoogleMapsMarker | any> {
if (!this._objectInstance) {
return Promise.reject({ error: 'plugin_not_installed' });
}
return new Promise<GoogleMapsMarker>(
(resolve, reject) => {
this._objectInstance.addMarker(options, (marker: any) => {
@@ -244,7 +238,10 @@ export class GoogleMap {
);
}
addCircle(options: GoogleMapsCircleOptions): Promise<GoogleMapsCircle> {
addCircle(options: GoogleMapsCircleOptions): Promise<GoogleMapsCircle | any> {
if (!this._objectInstance) {
return Promise.reject({ error: 'plugin_not_installed' });
}
return new Promise<GoogleMapsCircle>(
(resolve, reject) => {
this._objectInstance.addCircle(options, (circle: any) => {
@@ -258,7 +255,10 @@ export class GoogleMap {
);
}
addPolygon(options: GoogleMapsPolygonOptions): Promise<GoogleMapsPolygon> {
addPolygon(options: GoogleMapsPolygonOptions): Promise<GoogleMapsPolygon | any> {
if (!this._objectInstance) {
return Promise.reject({ error: 'plugin_not_installed' });
}
return new Promise<GoogleMapsPolygon>(
(resolve, reject) => {
this._objectInstance.addPolygon(options, (polygon: any) => {
@@ -272,7 +272,10 @@ export class GoogleMap {
);
}
addPolyline(options: GoogleMapsPolylineOptions): Promise<GoogleMapsPolyline> {
addPolyline(options: GoogleMapsPolylineOptions): Promise<GoogleMapsPolyline | any> {
if (!this._objectInstance) {
return Promise.reject({ error: 'plugin_not_installed' });
}
return new Promise<GoogleMapsPolyline>(
(resolve, reject) => {
this._objectInstance.addPolyline(options, (polyline: any) => {
@@ -286,7 +289,10 @@ export class GoogleMap {
);
}
addTileOverlay(options: GoogleMapsTileOverlayOptions): Promise<GoogleMapsTileOverlay> {
addTileOverlay(options: GoogleMapsTileOverlayOptions): Promise<GoogleMapsTileOverlay | any> {
if (!this._objectInstance) {
return Promise.reject({ error: 'plugin_not_installed' });
}
return new Promise<GoogleMapsTileOverlay>(
(resolve, reject) => {
this._objectInstance.addTileOverlay(options, (tileOverlay: any) => {
@@ -300,7 +306,10 @@ export class GoogleMap {
);
}
addGroundOverlay(options: GoogleMapsGroundOverlayOptions): Promise<GoogleMapsGroundOverlay> {
addGroundOverlay(options: GoogleMapsGroundOverlayOptions): Promise<GoogleMapsGroundOverlay | any> {
if (!this._objectInstance) {
return Promise.reject({ error: 'plugin_not_installed' });
}
return new Promise<GoogleMapsGroundOverlay>(
(resolve, reject) => {
this._objectInstance.addGroundOverlay(options, (groundOverlay: any) => {
@@ -314,7 +323,10 @@ export class GoogleMap {
);
}
addKmlOverlay(options: GoogleMapsKmlOverlayOptions): Promise<GoogleMapsKmlOverlay> {
addKmlOverlay(options: GoogleMapsKmlOverlayOptions): Promise<GoogleMapsKmlOverlay | any> {
if (!this._objectInstance) {
return Promise.reject({ error: 'plugin_not_installed' });
}
return new Promise<GoogleMapsKmlOverlay>(
(resolve, reject) => {
this._objectInstance.addKmlOverlay(options, (kmlOverlay: any) => {
@@ -329,55 +341,40 @@ export class GoogleMap {
}
@CordovaInstance({ sync: true })
setDiv(domNode: HTMLElement): void {
}
setDiv(domNode: HTMLElement): void { }
@CordovaInstance({ sync: true })
setVisible(visible: boolean): void {
}
setVisible(visible: boolean): void { }
@CordovaInstance({ sync: true })
setOptions(options: any): void {
}
setOptions(options: any): void { }
@CordovaInstance({ sync: true })
setBackgroundColor(backgroundColor: string): void {
}
setBackgroundColor(backgroundColor: string): void { }
@CordovaInstance({ sync: true })
setPadding(top?: number, right?: number, bottom?: number, left?: number): void {
}
setPadding(top?: number, right?: number, bottom?: number, left?: number): void { }
@CordovaInstance({ sync: true })
clear(): void {
}
clear(): void { }
@CordovaInstance({ sync: true })
refreshLayout(): void {
}
refreshLayout(): void { }
@CordovaInstance()
fromLatLngToPoint(latLng: GoogleMapsLatLng, point: any): Promise<any> {
return;
}
fromLatLngToPoint(latLng: GoogleMapsLatLng, point: any): Promise<any> { return; }
@CordovaInstance()
fromPointToLatLng(point: any, latLng: GoogleMapsLatLng): Promise<GoogleMapsLatLng> {
return;
}
fromPointToLatLng(point: any, latLng: GoogleMapsLatLng): Promise<GoogleMapsLatLng> { return; }
@CordovaInstance()
toDataURL(): Promise<any> {
return;
}
toDataURL(): Promise<any> { return; }
@CordovaInstance({ sync: true })
remove(): void {
}
remove(): void { }
@CordovaInstance({ sync: true })
panBy(): void {
}
panBy(): void { }
}
@@ -396,7 +393,7 @@ export interface AnimateCameraOptions {
* @private
*/
export interface CameraPosition {
target?: GoogleMapsLatLng | GoogleMapsLatLngBounds;
target?: GoogleMapsLatLng | GoogleMapsLatLngBounds | GoogleMapsLatLng[];
zoom?: number;
tilt?: number;
bearing?: number;
@@ -461,8 +458,7 @@ export interface GoogleMapsMarkerIcon {
*/
export class GoogleMapsMarker {
constructor(private _objectInstance: any) {
}
constructor(private _objectInstance: any) { }
addEventListener(event: any): Observable<any> {
return new Observable(
@@ -474,117 +470,79 @@ export class GoogleMapsMarker {
}
@CordovaInstance({ sync: true })
isVisible(): boolean {
return;
}
isVisible(): boolean { return; }
@CordovaInstance()
setVisible(visible: boolean): void {
}
setVisible(visible: boolean): void { }
@CordovaInstance({ sync: true })
getHashCode(): string {
return;
}
getHashCode(): string { return; }
@CordovaInstance({ sync: true })
remove(): void {
}
remove(): void { }
@CordovaInstance({ sync: true })
setOpacity(alpha: number): void {
}
setOpacity(alpha: number): void { }
@CordovaInstance({ sync: true })
getOpacity(): number {
return;
}
getOpacity(): number { return; }
@CordovaInstance({ sync: true })
setZIndex(): void {
}
setZIndex(): void { }
@CordovaInstance({ sync: true })
setIconAnchor(x: number, y: number): void {
}
setIconAnchor(x: number, y: number): void { }
@CordovaInstance({ sync: true })
setInfoWindowAnchor(x: number, y: number): void {
}
setInfoWindowAnchor(x: number, y: number): void { }
@CordovaInstance({ sync: true })
setDraggable(draggable: boolean): void {
}
setDraggable(draggable: boolean): void { }
@CordovaInstance({ sync: true })
isDraggable(): boolean {
return;
}
isDraggable(): boolean { return; }
@CordovaInstance({ sync: true })
setFlat(flat: boolean): void {
return;
}
setFlat(flat: boolean): void { return; }
@CordovaInstance({ sync: true })
setIcon(icon: GoogleMapsMarkerIcon): void {
}
setIcon(icon: GoogleMapsMarkerIcon): void { return; }
@CordovaInstance({ sync: true })
setTitle(title: string): void {
}
setTitle(title: string): void { }
@CordovaInstance({ sync: true })
getTitle(): string {
return;
}
getTitle(): string { return; }
@CordovaInstance({ sync: true })
setSnippet(snippet: string): void {
}
setSnippet(snippet: string): void { }
@CordovaInstance({ sync: true })
getSnippet(): string {
return;
}
getSnippet(): string { return; }
@CordovaInstance({ sync: true })
setRotation(rotation: number): void {
}
setRotation(rotation: number): void { }
@CordovaInstance({ sync: true })
getRotation(): number {
return;
}
getRotation(): number { return; }
@CordovaInstance({ sync: true })
showInfoWindow(): number {
return;
}
showInfoWindow(): number { return; }
@CordovaInstance({ sync: true })
hideInfoWindow(): number {
return;
}
hideInfoWindow(): number { return; }
@CordovaInstance({ sync: true })
setPosition(latLng: GoogleMapsLatLng): void {
}
setPosition(latLng: GoogleMapsLatLng): void { return; }
@CordovaInstance()
getPosition(): Promise<GoogleMapsLatLng> {
return;
}
getPosition(): Promise<GoogleMapsLatLng> { return; }
@CordovaInstance({ sync: true })
getMap(): GoogleMap {
return;
}
getMap(): GoogleMap { return; }
@CordovaInstance({ sync: true })
setAnimation(animation: string): void {
}
setAnimation(animation: string): void { }
}
@@ -606,8 +564,7 @@ export interface GoogleMapsCircleOptions {
*/
export class GoogleMapsCircle {
constructor(private _objectInstance: any) {
}
constructor(private _objectInstance: any) { }
addEventListener(event: any): Observable<any> {
return new Observable(
@@ -619,66 +576,46 @@ export class GoogleMapsCircle {
}
@CordovaInstance({ sync: true })
getCenter(): GoogleMapsLatLng {
return;
}
getCenter(): GoogleMapsLatLng { return; }
@CordovaInstance({ sync: true })
getRadius(): number {
return;
}
getRadius(): number { return; }
@CordovaInstance({ sync: true })
getStrokeColor(): string {
return;
}
getStrokeColor(): string { return; }
@CordovaInstance({ sync: true })
getVisible(): boolean {
return;
}
getVisible(): boolean { return; }
@CordovaInstance({ sync: true })
getZIndex(): number {
return;
}
getZIndex(): number { return; }
@CordovaInstance({ sync: true })
remove(): void {
}
remove(): void { }
@CordovaInstance({ sync: true })
setCenter(latLng: GoogleMapsLatLng): void {
}
setCenter(latLng: GoogleMapsLatLng): void { }
@CordovaInstance({ sync: true })
setFillColor(fillColor: string): void {
}
setFillColor(fillColor: string): void { }
@CordovaInstance({ sync: true })
setStrokeColor(strokeColor: string): void {
}
setStrokeColor(strokeColor: string): void { }
@CordovaInstance({ sync: true })
setStrokeWidth(strokeWidth: number): void {
}
setStrokeWidth(strokeWidth: number): void { }
@CordovaInstance({ sync: true })
setVisible(visible: boolean): void {
}
setVisible(visible: boolean): void { }
@CordovaInstance({ sync: true })
setZIndex(zIndex: number): void {
}
setZIndex(zIndex: number): void { }
@CordovaInstance({ sync: true })
setRadius(radius: number): void {
}
setRadius(radius: number): void { }
@CordovaInstance({ sync: true })
getMap(): GoogleMap {
return;
}
getMap(): GoogleMap { return; }
}
/**
@@ -697,8 +634,7 @@ export interface GoogleMapsPolylineOptions {
* @private
*/
export class GoogleMapsPolyline {
constructor(private _objectInstance: any) {
}
constructor(private _objectInstance: any) { }
addEventListener(event: any): Observable<any> {
return new Observable(
@@ -710,62 +646,43 @@ export class GoogleMapsPolyline {
}
@CordovaInstance({ sync: true })
getPoints(): Array<GoogleMapsLatLng> {
return;
}
getPoints(): Array<GoogleMapsLatLng> { return; }
@CordovaInstance({ sync: true })
getCOlor(): string {
return;
}
getCOlor(): string { return; }
@CordovaInstance({ sync: true })
getWidth(): number {
return;
}
getWidth(): number { return; }
@CordovaInstance({ sync: true })
getGeodesic(): boolean {
return;
}
getGeodesic(): boolean { return; }
@CordovaInstance({ sync: true })
getZIndex(): number {
return;
}
getZIndex(): number { return; }
@CordovaInstance({ sync: true })
remove(): void {
}
remove(): void { }
@CordovaInstance({ sync: true })
setPoints(points: Array<GoogleMapsLatLng>): void {
}
setPoints(points: Array<GoogleMapsLatLng>): void { }
@CordovaInstance({ sync: true })
setColor(color: string): void {
}
setColor(color: string): void { }
@CordovaInstance({ sync: true })
setWidth(width: number): void {
}
setWidth(width: number): void { }
@CordovaInstance({ sync: true })
setVisible(visible: boolean): void {
}
setVisible(visible: boolean): void { }
@CordovaInstance({ sync: true })
setZIndex(zIndex: number): void {
}
setZIndex(zIndex: number): void { }
@CordovaInstance({ sync: true })
setGeoDesic(geoDesic: boolean): void {
}
setGeoDesic(geoDesic: boolean): void { }
@CordovaInstance({ sync: true })
getMap(): GoogleMap {
return;
}
getMap(): GoogleMap { return; }
}
@@ -788,8 +705,7 @@ export interface GoogleMapsPolygonOptions {
*/
export class GoogleMapsPolygon {
constructor(private _objectInstance: any) {
}
constructor(private _objectInstance: any) { }
addEventListener(event: any): Observable<any> {
return new Observable(
@@ -801,78 +717,56 @@ export class GoogleMapsPolygon {
}
@CordovaInstance({ sync: true })
getPoints(): Array<GoogleMapsLatLng> {
return;
}
getPoints(): Array<GoogleMapsLatLng> { return; }
@CordovaInstance({ sync: true })
getStrokeColor(): string {
return;
}
getStrokeColor(): string { return; }
@CordovaInstance({ sync: true })
getFillColor(): string {
return;
}
getFillColor(): string { return; }
@CordovaInstance({ sync: true })
getStrokeWidth(): number {
return;
}
getStrokeWidth(): number { return; }
@CordovaInstance({ sync: true })
getGeodesic(): boolean {
return;
}
getGeodesic(): boolean { return; }
@CordovaInstance({ sync: true })
getVisible(): boolean {
return;
}
getVisible(): boolean { return; }
@CordovaInstance({ sync: true })
getZIndex(): boolean {
return;
}
getZIndex(): boolean { return; }
@CordovaInstance({ sync: true })
remove(): void {
}
remove(): void { }
@CordovaInstance({ sync: true })
setPoints(points: Array<GoogleMapsLatLng>): void {
}
setPoints(points: Array<GoogleMapsLatLng>): void { }
@CordovaInstance({ sync: true })
setStrokeColor(strokeColor: string): void {
}
setStrokeColor(strokeColor: string): void { }
@CordovaInstance({ sync: true })
setFillColor(fillColor: string): void {
}
setFillColor(fillColor: string): void { }
@CordovaInstance({ sync: true })
setStrokeWidth(strokeWidth: number): void {
}
setStrokeWidth(strokeWidth: number): void { }
@CordovaInstance({ sync: true })
setVisible(visible: boolean): void {
}
setVisible(visible: boolean): void { }
@CordovaInstance({ sync: true })
setZIndex(zIndex: number): void {
}
setZIndex(zIndex: number): void { }
@CordovaInstance({ sync: true })
setGeodesic(geodesic: boolean): void {
}
setGeodesic(geodesic: boolean): void { }
}
/**
* @private
*/
export interface GoogleMapsTileOverlayOptions {
titleUrilFormat?: string;
tileUrlFormat?: string;
visible?: boolean;
zIndex?: number;
tileSize?: number;
@@ -884,52 +778,37 @@ export interface GoogleMapsTileOverlayOptions {
*/
export class GoogleMapsTileOverlay {
constructor(private _objectInstance: any) {
}
constructor(private _objectInstance: any) { }
@CordovaInstance({ sync: true })
getVisible(): boolean {
return;
}
getVisible(): boolean { return; }
@CordovaInstance({ sync: true })
setVisible(visible: boolean): void {
}
setVisible(visible: boolean): void { }
@CordovaInstance({ sync: true })
getFadeIn(): boolean {
return;
}
getFadeIn(): boolean { return; }
@CordovaInstance({ sync: true })
setFadeIn(fadeIn: boolean): void {
}
setFadeIn(fadeIn: boolean): void { }
@CordovaInstance({ sync: true })
getZIndex(): number {
return;
}
getZIndex(): number { return; }
@CordovaInstance({ sync: true })
setZIndex(zIndex: number): void {
}
setZIndex(zIndex: number): void { }
@CordovaInstance({ sync: true })
getOpacity(): number {
return;
}
getOpacity(): number { return; }
@CordovaInstance({ sync: true })
setOpacity(opacity: number): void {
}
setOpacity(opacity: number): void { }
@CordovaInstance({ sync: true })
clearTileCache(): void {
}
clearTileCache(): void { }
@CordovaInstance({ sync: true })
remove(): void {
}
remove(): void { }
}
@@ -950,43 +829,31 @@ export interface GoogleMapsGroundOverlayOptions {
*/
export class GoogleMapsGroundOverlay {
constructor(private _objectInstance: any) {
}
constructor(private _objectInstance: any) { }
@CordovaInstance({ sync: true })
setBearing(bearing: number): void {
}
setBearing(bearing: number): void { }
@CordovaInstance({ sync: true })
getBearing(): number {
return;
}
getBearing(): number { return; }
@CordovaInstance({ sync: true })
setOpacity(opacity: number): void {
}
setOpacity(opacity: number): void { }
@CordovaInstance({ sync: true })
getOpacity(): number {
return;
}
getOpacity(): number { return; }
@CordovaInstance({ sync: true })
setVisible(visible: boolean): void {
}
setVisible(visible: boolean): void { }
@CordovaInstance({ sync: true })
getVisible(): boolean {
return;
}
getVisible(): boolean { return; }
@CordovaInstance({ sync: true })
setImage(image: string): void {
};
setImage(image: string): void { };
@CordovaInstance({ sync: true })
remove(): void {
}
remove(): void { }
}
@@ -1004,17 +871,13 @@ export interface GoogleMapsKmlOverlayOptions {
*/
export class GoogleMapsKmlOverlay {
constructor(private _objectInstance: any) {
}
constructor(private _objectInstance: any) { }
@CordovaInstance({ sync: true })
remove(): void {
}
remove(): void { }
@CordovaInstance({ sync: true })
getOverlays(): Array<GoogleMapsPolyline | GoogleMapsPolygon | GoogleMapsMarker> {
return;
}
getOverlays(): Array<GoogleMapsPolyline | GoogleMapsPolygon | GoogleMapsMarker> { return; }
}
/**
@@ -1023,53 +886,50 @@ export class GoogleMapsKmlOverlay {
export class GoogleMapsLatLngBounds {
private _objectInstance: any;
constructor(public southwestOrArrayOfLatLng: GoogleMapsLatLng | GoogleMapsLatLng[], public northeast?: GoogleMapsLatLng) {
@InstanceProperty get northeast(): GoogleMapsLatLng { return; }
@InstanceProperty get southwest(): GoogleMapsLatLng { return; }
@InstanceProperty get type(): string { return; }
constructor(southwestOrArrayOfLatLng: GoogleMapsLatLng | GoogleMapsLatLng[], northeast?: GoogleMapsLatLng) {
let args = !!northeast ? [southwestOrArrayOfLatLng, northeast] : southwestOrArrayOfLatLng;
this._objectInstance = new plugin.google.maps.LatLngBounds(args);
}
@CordovaInstance({ sync: true })
toString(): string {
return;
}
toString(): string { return; }
@CordovaInstance({ sync: true })
toUrlValue(precision?: number): string {
return;
}
toUrlValue(precision?: number): string { return; }
@CordovaInstance({ sync: true })
extend(LatLng: GoogleMapsLatLng): void {
}
extend(LatLng: GoogleMapsLatLng): void { }
@CordovaInstance({ sync: true })
contains(LatLng: GoogleMapsLatLng): boolean {
return;
}
contains(LatLng: GoogleMapsLatLng): boolean { return; }
@CordovaInstance({ sync: true })
getCenter(): GoogleMapsLatLng {
return;
}
getCenter(): GoogleMapsLatLng { return; }
}
/**
* @private
*/
export class GoogleMapsLatLng {
private _objectInstance: any;
constructor(public lat: number, public lng: number) {
this._objectInstance = new plugin.google.maps.LatLng(lat, lng);
lat: number;
lng: number;
constructor(lat: number, lng: number) {
this.lat = lat;
this.lng = lng;
}
equals(other: GoogleMapsLatLng): boolean {
return this.lat === other.lat && this.lng === other.lng;
}
@CordovaInstance({ sync: true })
toString(): string {
return;
return this.lat + ',' + this.lng;
}
toUrlValue(precision?: number): string {
@@ -1083,6 +943,7 @@ export class GoogleMapsLatLng {
*/
export interface GeocoderRequest {
address?: string;
bounds?: GoogleMapsLatLng[];
position?: { lat: number; lng: number };
}
/**
@@ -1117,9 +978,13 @@ export class Geocoder {
* @param {GeocoderRequest} request Request object with either an address or a position
* @returns {Promise<GeocoderResult[]>}
*/
static geocode(request: GeocoderRequest): Promise<GeocoderResult[]> {
static geocode(request: GeocoderRequest): Promise<GeocoderResult[] | any> {
return new Promise<GeocoderResult[]>((resolve, reject) => {
if (!plugin || !plugin.google || !plugin.google.maps || !plugin.google.maps.Geocoder) {
pluginWarn({
name: 'GoogleMap',
plugin: 'plugin.google.maps.Map'
});
reject({ error: 'plugin_not_installed' });
} else {
plugin.google.maps.Geocoder.geocode(request, resolve);

View File

@@ -15,6 +15,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'Hotspot',
plugin: 'cordova-plugin-hotspot',
pluginRef: 'cordova.plugins.hotspot',
repo: 'https://github.com/hypery2k/cordova-hotspot-plugin',
@@ -155,10 +156,10 @@ export class Hotspot {
static isWifiDirectSupported(): Promise<boolean> { return; }
@Cordova()
static scanWifi(): Promise<Array<Network>> { return; }
static scanWifi(): Promise<Array<HotspotNetwork>> { return; }
@Cordova()
static scanWifiByLevel(): Promise<Array<Network>> { return; }
static scanWifiByLevel(): Promise<Array<HotspotNetwork>> { return; }
@Cordova()
static startWifiPeriodicallyScan(interval: number, duration: number): Promise<any> { return; }
@@ -167,7 +168,7 @@ export class Hotspot {
static stopWifiPeriodicallyScan(): Promise<any> { return; }
@Cordova()
static getNetConfig(): Promise<NetworkConfig> { return; }
static getNetConfig(): Promise<HotspotNetworkConfig> { return; }
@Cordova()
static getConnectionInfo(): Promise<ConnectionInfo> { return; }
@@ -217,90 +218,90 @@ export class Hotspot {
export interface ConnectionInfo {
/**
* @property {string} SSID
* SSID
* The service set identifier (SSID) of the current 802.11 network.
*/
SSID: string;
/**
* @property {string} BSSID
* BSSID
* The basic service set identifier (BSSID) of the current access point.
*/
BSSID: string;
/**
* @property {string} linkSpeed
* linkSpeed
* The current link speed in Mbps
*/
linkSpeed: string;
/**
* @property {string} IPAddress
* IPAddress
* The IP Address
*/
IPAddress: string;
/**
* @property {string} networkID
* networkID
* Each configured network has a unique small integer ID, used to identify the network when performing operations on the supplicant.
*/
networkID: string;
}
export interface Network {
export interface HotspotNetwork {
/**
* @property {string} SSID
* SSID
* Human readable network name
*/
SSID: string;
/**
* @property {string} BSSID
* BSSID
* MAC Address of the access point
*/
BSSID: string;
/**
* @property {number (int)} frequency
* frequency
* The primary 20 MHz frequency (in MHz) of the channel over which the client is communicating with the access point.
*/
frequency: number;
/**
* @property {number} level
* level
* The detected signal level in dBm, also known as the RSSI.
*/
level: number;
/**
* @property {number} timestamp
* timestamp
* Timestamp in microseconds (since boot) when this result was last seen.
*/
timestamp: number;
/**
* @property {string} capabilities
* capabilities
* Describes the authentication, key management, and encryption schemes supported by the access point.
*/
capabilities: string;
}
export interface NetworkConfig {
export interface HotspotNetworkConfig {
/**
* @property {string} deviceIPAddress - Device IP Address
* deviceIPAddress - Device IP Address
*/
deviceIPAddress: string;
/**
* @property {string} deviceMacAddress - Device MAC Address
* deviceMacAddress - Device MAC Address
*/
deviceMacAddress: string;
/**
* @property {string} gatewayIPAddress - Gateway IP Address
* gatewayIPAddress - Gateway IP Address
*/
gatewayIPAddress: string;
/**
* @property {string} gatewayMacAddress - Gateway MAC Address
* gatewayMacAddress - Gateway MAC Address
*/
gatewayMacAddress: string;
}
export interface HotspotDevice {
/**
* @property {string} ip
* ip
* Hotspot IP Address
*/
ip: string;
/**
* @property {string} mac
* mac
* Hotspot MAC Address
*/
mac: string;

158
src/plugins/http.ts Normal file
View File

@@ -0,0 +1,158 @@
import { Plugin, Cordova } from './plugin';
/**
* @name HTTP
* @description
* Cordova / Phonegap plugin for communicating with HTTP servers. Supports iOS and Android.
*
* Advantages over Javascript requests:
* - Background threading - all requests are done in a background thread
* - SSL Pinning
*
* @usage
* ```
* import { HTTP } from 'ionic-native';
*
* HTTP.get('http://ionic.io', {}, {})
* .then(data => {
*
* console.log(data.status);
* console.log(data.data); // data received by server
* console.log(data.headers);
*
* })
* .catch(error => {
*
* console.log(error.status);
* console.log(error.error); // error message as string
* console.log(error.headers);
*
* });
*
* ```
* @interfaces
* HTTPResponse
*/
@Plugin({
name: 'HTTP',
plugin: 'cordova-plugin-http',
pluginRef: 'cordovaHTTP',
repo: 'https://github.com/wymsee/cordova-HTTP',
platforms: ['Android', 'iOS']
})
export class HTTP {
/**
* This returns an object representing a basic HTTP Authorization header of the form.
* @param username {string} Username
* @param password {string} Password
* @return {Object} an object representing a basic HTTP Authorization header of the form {'Authorization': 'Basic base64encodedusernameandpassword'}
*/
@Cordova({ sync: true })
static getBasicAuthHeader(username: string, password: string): { Authorization: string; } { return; }
/**
* This sets up all future requests to use Basic HTTP authentication with the given username and password.
* @param username {string} Username
* @param password {string} Password
*/
@Cordova({ sync: true })
static useBasicAuth(username: string, password: string): void { }
/**
* Set a header for all future requests. Takes a header and a value.
* @param header {string} The name of the header
* @param value {string} The value of the header
*/
@Cordova({ sync: true })
static setHeader(header: string, value: string): void { }
/**
* Enable or disable SSL Pinning. This defaults to false.
*
* To use SSL pinning you must include at least one .cer SSL certificate in your app project. You can pin to your server certificate or to one of the issuing CA certificates. For ios include your certificate in the root level of your bundle (just add the .cer file to your project/target at the root level). For android include your certificate in your project's platforms/android/assets folder. In both cases all .cer files found will be loaded automatically. If you only have a .pem certificate see this stackoverflow answer. You want to convert it to a DER encoded certificate with a .cer extension.
*
* As an alternative, you can store your .cer files in the www/certificates folder.
* @param enable {boolean} Set to true to enable
* @return {Promise<any>} returns a promise that will resolve on success, and reject on failure
*/
@Cordova()
static enableSSLPinning(enable: boolean): Promise<void> { return; }
/**
* Accept all SSL certificates. Or disabled accepting all certificates. Defaults to false.
* @param accept {boolean} Set to true to accept
* @return {Promise<any>} returns a promise that will resolve on success, and reject on failure
*/
@Cordova()
static acceptAllCerts(accept: boolean): Promise<void> { return; }
/**
* Whether or not to validate the domain name in the certificate. This defaults to true.
* @param validate {boolean} Set to true to validate
* @return {Promise<any>} returns a promise that will resolve on success, and reject on failure
*/
@Cordova()
static validateDomainName(validate: boolean): Promise<void> { return; }
/**
* Make a POST request
* @param url {string} The url to send the request to
* @param body {Object} The body of the request
* @param headers {Object} The headers to set for this request
* @return {Promise<HTTPResponse>} returns a promise that resolve on success, and reject on failure
*/
@Cordova()
static post(url: string, body: any, headers: any): Promise<HTTPResponse> { return; }
/**
*
* @param url {string} The url to send the request to
* @param parameters {Object} Parameters to send with the request
* @param headers {Object} The headers to set for this request
* @return {Promise<HTTPResponse>} returns a promise that resolve on success, and reject on failure
*/
@Cordova()
static get(url: string, parameters: any, headers: any): Promise<HTTPResponse> { return; }
/**
*
* @param url {string} The url to send the request to
* @param body {Object} The body of the request
* @param headers {Object} The headers to set for this request
* @param filePath {string} The local path of the file to upload
* @param name {string} The name of the parameter to pass the file along as
* @return {Promise<HTTPResponse>} returns a promise that resolve on success, and reject on failure
*/
@Cordova()
static uploadFile(url: string, body: any, headers: any, filePath: string, name: string): Promise<HTTPResponse> { return; }
/**
*
* @param url {string} The url to send the request to
* @param body {Object} The body of the request
* @param headers {Object} The headers to set for this request
* @param filePath {string} The path to donwload the file to, including the file name.
* @return {Promise<HTTPResponse>} returns a promise that resolve on success, and reject on failure
*/
@Cordova()
static downloadFile(url: string, body: any, headers: any, filePath: string): Promise<HTTPResponse> { return; }
}
export interface HTTPResponse {
/**
* The status number of the response
*/
status: number;
/**
* The data that is in the response. This property usually exists when a promise returned by a request method resolves.
*/
data?: any;
/**
* The headers of the response
*/
headers: any;
/**
* Error response from the server. This property usually exists when a promise returned by a request method rejects.
*/
error?: string;
}

View File

@@ -23,6 +23,7 @@ import { Observable } from 'rxjs/Observable';
* ```
*/
@Plugin({
name: 'Httpd',
plugin: 'https://github.com/floatinghotpot/cordova-httpd.git',
pluginRef: 'cordova.plugins.CorHttpd',
repo: 'https://github.com/floatinghotpot/cordova-httpd',

View File

@@ -268,6 +268,7 @@ export interface Delegate {
* ```
*/
@Plugin({
name: 'IBeacon',
plugin: 'cordova-plugin-ibeacon',
pluginRef: 'cordova.plugins.locationManager',
repo: 'https://github.com/petermetz/cordova-plugin-ibeacon',

View File

@@ -2,19 +2,23 @@ import { Cordova, Plugin } from './plugin';
export interface ImagePickerOptions {
// max images to be selected, defaults to 15. If this is set to 1, upon
// selection of a single image, the plugin will return it.
/**
* max images to be selected, defaults to 15. If this is set to 1, upon selection of a single image, the plugin will return it.
*/
maximumImagesCount?: number;
// max width and height to allow the images to be. Will keep aspect
// ratio no matter what. So if both are 800, the returned image
// will be at most 800 pixels wide and 800 pixels tall. If the width is
// 800 and height 0 the image will be 800 pixels wide if the source
// is at least that wide.
/**
* Max width to allow images to be
*/
width?: number;
/**
* Max height to allow images to be
*/
height?: number;
// quality of resized image, defaults to 100
/**
* Quality of images, defaults to 100
*/
quality?: number;
}
@@ -38,8 +42,11 @@ export interface ImagePickerOptions {
* }
* }, (err) => { });
* ```
* @interfaces
* ImagePickerOptions
*/
@Plugin({
name: 'ImagePicker',
plugin: 'cordova-plugin-image-picker',
pluginRef: 'window.imagePicker',
repo: 'https://github.com/wymsee/cordova-imagePicker'
@@ -56,4 +63,22 @@ export class ImagePicker {
})
static getPictures(options: ImagePickerOptions): Promise<any> { return; }
/**
* Check if we have permission to read images
* @returns {Promise<boolean>} Returns a promise that resolves with a boolean that indicates whether we have permission
*/
@Cordova({
platforms: ['Android']
})
static hasReadPermission(): Promise<boolean> { return; }
/**
* Request permission to read images
* @returns {Promise<any>}
*/
@Cordova({
platforms: ['Android']
})
static requestReadPermission(): Promise<any> { return; }
}

View File

@@ -67,6 +67,7 @@ export interface ImageResizerOptions {
* ```
*/
@Plugin({
name: 'ImageResizer',
plugin: 'https://github.com/protonet/cordova-plugin-image-resizer.git',
pluginRef: 'ImageResizer',
repo: 'https://github.com/protonet/cordova-plugin-image-resizer'

View File

@@ -31,6 +31,7 @@ export interface InAppBrowserEvent extends Event {
* ```
*/
@Plugin({
name: 'InAppBrowser',
plugin: 'cordova-plugin-inappbrowser',
pluginRef: 'cordova.InAppBrowser',
repo: 'https://github.com/apache/cordova-plugin-inappbrowser'

View File

@@ -51,6 +51,7 @@ import { Plugin, Cordova } from './plugin';
*
*/
@Plugin({
name: 'InAppPurchase',
plugin: 'cordova-plugin-inapppurchase',
pluginRef: 'inAppPurchase',
platforms: ['Android', 'iOS'],

View File

@@ -26,6 +26,7 @@ import { Cordova, Plugin } from './plugin';
*
*/
@Plugin({
name: 'Insomnia',
plugin: 'https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin.git',
pluginRef: 'plugins.insomnia',
repo: 'https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin',

View File

@@ -15,6 +15,7 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'Instagram',
plugin: 'cordova-instagram-plugin',
pluginRef: 'Instagram',
repo: 'https://github.com/vstirbu/InstagramPlugin'

View File

@@ -17,6 +17,7 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'IsDebug',
plugin: 'cordova-plugin-is-debug',
pluginRef: 'cordova.plugins.IsDebug',
repo: 'https://github.com/mattlewis92/cordova-plugin-is-debug'

View File

@@ -14,6 +14,7 @@ import { Observable } from 'rxjs/Observable';
* ```
*/
@Plugin({
name: 'Keyboard',
plugin: 'ionic-plugin-keyboard',
pluginRef: 'cordova.plugins.Keyboard',
repo: 'https://github.com/driftyco/ionic-plugin-keyboard'

View File

@@ -82,6 +82,7 @@ export interface LaunchNavigatorOptions {
* ```
*/
@Plugin({
name: 'LaunchNavigator',
plugin: 'uk.co.workingedge.phonegap.plugin.launchnavigator',
pluginRef: 'launchnavigator',
repo: 'https://github.com/dpa99c/phonegap-launch-navigator.git'

View File

@@ -45,6 +45,7 @@ import { Cordova, Plugin } from './plugin';
*
*/
@Plugin({
name: 'LocalNotifications',
plugin: 'de.appplant.cordova.plugin.local-notification',
pluginRef: 'cordova.plugins.notification.local',
repo: 'https://github.com/katzer/cordova-plugin-local-notifications'

View File

@@ -0,0 +1,68 @@
import {Plugin, Cordova} from './plugin';
/**
* @name LocationAccuracy
* @description
* This Cordova/Phonegap plugin for Android and iOS to request enabling/changing of Location Services by triggering a native dialog from within the app, avoiding the need for the user to leave your app to change location settings manually.
*
* @usage
* ```
* import { LocationAccuracy } from 'ionic-native';
*
* LocationAccuracy.canRequest().then((canRequest: boolean) => {
*
* if(canRequest) {
* // the accuracy option will be ignored by iOS
* LocationAccuracy.request(LocationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then(
* () => console.log('Request successful'),
* error => console.log('Error requesting location permissions', error)
* );
* }
*
* });
*
* ```
*/
@Plugin({
name: 'LocationAccuracy',
plugin: 'cordova-plugin-request-location-accuracy',
pluginRef: 'cordova.plugins.locationAccuracy',
repo: 'https://github.com/dpa99c/cordova-plugin-request-location-accuracy'
})
export class LocationAccuracy {
/**
* Indicates if you can request accurate location
* @returns {Promise<boolean>} Returns a promise that resovles with a boolean that indicates if you can request accurate location
*/
@Cordova()
static canRequest(): Promise<boolean> { return; }
/**
* Indicates if a request is currently in progress
* @returns {Promise<boolean>} Returns a promise that resolves with a boolean that indicates if a request is currently in progress
*/
@Cordova()
static isRequesting(): Promise<boolean> { return; }
/**
* Requests accurate location
* @param accuracy {number} Accuracy, from 0 to 4. You can use the static properties of this class that start with REQUEST_PRIORITY_
* @returns {Promise<any>} Returns a promise that resolves on success and rejects if an error occurred
*/
@Cordova({ callbackOrder: 'reverse' })
static request(accuracy: number): Promise<any> { return; }
static REQUEST_PRIORITY_NO_POWER = 0;
static REQUEST_PRIORITY_LOW_POWER = 1;
static REQUEST_PRIORITY_BALANCED_POWER_ACCURACY = 2;
static REQUEST_PRIORITY_HIGH_ACCURACY = 3;
static SUCCESS_SETTINGS_SATISFIED = 0;
static SUCCESS_USER_AGREED = 1;
static ERROR_ALREADY_REQUESTING = -1;
static ERROR_INVALID_ACTION = 0;
static ERROR_INVALID_ACCURACY = 1;
static ERROR_EXCEPTION = 1;
static ERROR_CANNOT_CHANGE_ACCURACY = 3;
static ERROR_USER_DISAGREED = 4;
static ERROR_GOOGLE_API_CONNECTION_FAILED = 4;
}

View File

@@ -13,6 +13,7 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'Market',
plugin: 'cordova-plugin-market',
pluginRef: 'plugins.market',
repo: 'https://github.com/xmartlabs/cordova-plugin-market'

View File

@@ -22,6 +22,7 @@ declare var navigator: any;
* ```
*/
@Plugin({
name: 'MediaCapture',
plugin: 'cordova-plugin-media-capture',
pluginRef: 'navigator.device.capture',
repo: 'https://github.com/apache/cordova-plugin-media-capture'

View File

@@ -1,6 +1,4 @@
import { CordovaInstance, Plugin } from './plugin';
import { Observable } from 'rxjs/Observable';
import { CordovaInstance, Plugin, getPlugin, pluginWarn } from './plugin';
declare var Media: any;
@@ -70,6 +68,7 @@ export interface MediaError {
* ```
*/
@Plugin({
name: 'MediaPlugin',
repo: 'https://github.com/apache/cordova-plugin-media',
plugin: 'cordova-plugin-media',
pluginRef: 'Media'
@@ -118,20 +117,25 @@ export class MediaPlugin {
// Properties
private _objectInstance: any;
status: Observable<any>;
init: Promise<any>;
// Methods
/**
* Open a media file
* @param src {string} A URI containing the audio content.
* @param onStatusUpdate {Function} A callback function to be invoked when the status of the file changes
*/
constructor(src: string) {
this.init = new Promise<any>((resolve, reject) => {
this.status = new Observable((observer) => {
this._objectInstance = new Media(src, resolve, reject, observer.next.bind(observer));
constructor(src: string, onStatusUpdate?: Function) {
if (!!getPlugin('Media')) {
this.init = new Promise<any>((resolve, reject) => {
this._objectInstance = new Media(src, resolve, reject, onStatusUpdate);
});
});
} else {
pluginWarn({
name: 'MediaPlugin',
plugin: 'cordova-plugin-media'
});
}
}
/**

View File

@@ -1,8 +1,7 @@
import { Cordova, CordovaProperty, Plugin } from './plugin';
import { Cordova, Plugin } from './plugin';
declare var mixpanel: any;
/**
* @name Mixpanel
* @description
@@ -19,6 +18,7 @@ declare var mixpanel: any;
* ```
*/
@Plugin({
name: 'Mixpanel',
plugin: 'cordova-plugin-mixpanel',
pluginRef: 'mixpanel',
repo: 'https://github.com/samzilverberg/cordova-mixpanel-plugin'
@@ -96,17 +96,61 @@ export class Mixpanel {
*
* @returns {MixpanelPeople}
*/
@CordovaProperty
static get people(): MixpanelPeople { return mixpanel.people; };
static get people(): typeof MixpanelPeople {
return MixpanelPeople;
};
}
/**
* @private
*/
export declare class MixpanelPeople {
static identify(distinctId: string, onSuccess?: Function, onFail?: Function): void;
static increment(peopleProperties: any, onSuccess?: Function, onFail?: Function): void;
static setPushId(pushId: string, onSuccess?: Function, onFail?: Function): void;
static set(peopleProperties: any, onSuccess?: Function, onFail?: Function): void;
static setOnce(peopleProperties: any, onSuccess?: Function, onFail?: Function): void;
export class MixpanelPeople {
/**
* @private
*/
static plugin: string = 'cordova-plugin-mixpanel';
/**
* @private
*/
static pluginRef: string = 'mixpanel.people';
/**
*
* @param distinctId {string}
* @return {Promise<any>}
*/
@Cordova()
static identify(distinctId: string): Promise<any> { return; }
/**
*
* @param peopleProperties {string}
* @return {Promise<any>}
*/
@Cordova()
static increment(peopleProperties: any): Promise<any> { return; }
/**
*
* @param pushId
* @return {Promise<any>}
*/
@Cordova()
static setPushId(pushId: string): Promise<any> { return; }
/**
*
* @param peopleProperties
* @return {Promise<any>}
*/
@Cordova()
static set(peopleProperties: any): Promise<any> { return; }
/**
*
* @param peopleProperties
* @return {Promise<any>}
*/
@Cordova()
static setOnce(peopleProperties: any): Promise<any> { return; }
}

View File

@@ -73,6 +73,7 @@ import { Observable } from 'rxjs/Observable';
* ```
*/
@Plugin({
name: 'MusicControls',
plugin: 'cordova-plugin-music-controls',
pluginRef: 'MusicControls',
repo: 'https://github.com/homerours/cordova-music-controls-plugin'

View File

@@ -21,6 +21,7 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'NativeAudio',
plugin: 'cordova-plugin-nativeaudio',
pluginRef: 'plugins.NativeAudio',
repo: 'https://github.com/floatinghotpot/cordova-plugin-nativeaudio'

View File

@@ -27,6 +27,7 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'NativePageTransitions',
plugin: 'com.telerik.plugins.nativepagetransitions',
pluginRef: 'plugins.nativepagetransitions',
repo: 'https://github.com/Telerik-Verified-Plugins/NativePageTransitions',
@@ -81,6 +82,9 @@ export interface TransitionOptions {
iosdelay?: number;
androiddelay?: number;
winphonedelay?: number;
fixedPixelsTops?: number;
fixedPixelsTop?: number;
fixedPixelsBottom?: number;
action?: string;
origin?: string;
href?: string;
}

View File

@@ -23,6 +23,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'NativeStorage',
plugin: 'cordova-plugin-nativestorage',
pluginRef: 'NativeStorage',
repo: 'https://github.com/TheCocoaProject/cordova-plugin-nativestorage'

View File

@@ -43,6 +43,7 @@ declare var navigator: any;
* The `connection` property will return one of the following connection types: `unknown`, `ethernet`, `wifi`, `2g`, `3g`, `4g`, `cellular`, `none`
*/
@Plugin({
name: 'Network',
plugin: 'cordova-plugin-network-information',
repo: 'https://github.com/apache/cordova-plugin-network-information',
platforms: ['Amazon Fire OS', 'iOS', 'Android', 'BlackBerry 10', 'Windows Phone 7', 'Windows Phone 8', 'Windows', 'Firefox OS', 'Browser'],

View File

@@ -1,5 +1,6 @@
import { Plugin, Cordova } from './plugin';
import { Observable } from 'rxjs/Observable';
declare let window: any;
/**
* @name NFC
* @description
@@ -23,6 +24,7 @@ import { Observable } from 'rxjs/Observable';
* ```
*/
@Plugin({
name: 'NFC',
plugin: 'phonegap-nfc',
pluginRef: 'nfc',
repo: 'https://github.com/chariotsolutions/phonegap-nfc'
@@ -155,9 +157,29 @@ export class NFC {
/**
* @private
*/
export declare class Ndef {
static uriRecord(uri: string): any;
static textRecord(text: string): any;
static mimeMediaRecord(mimeType: string, payload: string): any;
static androidApplicationRecord(packageName: string): any;
export class Ndef {
/**
* @private
*/
static name = 'NFC';
/**
* @private
*/
static plugin = 'phonegap-nfc';
/**
* @private
*/
static pluginRef = 'ndef';
@Cordova({ sync: true })
static uriRecord(uri: string): any { return; }
@Cordova({ sync: true })
static textRecord(text: string): any { return; }
@Cordova({ sync: true })
static mimeMediaRecord(mimeType: string, payload: string): any { return; }
@Cordova({ sync: true })
static androidApplicationRecord(packageName: string): any { return; }
}

View File

@@ -1,7 +1,6 @@
import { Cordova, Plugin } from './plugin';
import { Observable } from 'rxjs/Observable';
/**
* @name OneSignal
* @description
@@ -14,17 +13,24 @@ import { Observable } from 'rxjs/Observable';
* ```typescript
* import { OneSignal } from 'ionic-native';
*
* OneSignal.init('b2f7f966-d8cc-11e4-bed1-df8f05be55ba',
* {googleProjectNumber: '703322744261'})
* .subscribe(jsonData => {
* console.log('didReceiveRemoteNotificationCallBack: ' + JSON.stringify(jsonData));
* });
* OneSignal.startInit('b2f7f966-d8cc-11e4-bed1-df8f05be55ba', '703322744261');
*
* OneSignal.enableInAppAlertNotification(true);
* OneSignal.inFocusDisplaying(OneSignal.OSInFocusDisplayOption.InAppAlert);
*
* OneSignal.handleNotificationReceived().subscribe(() => {
* // do something when notification is received
* });
*
* OneSignal.handleNotificationOpened().subscribe(() => {
* // do something when a notification is opened
* });
*
* OneSignal.endInit();
* ```
*
*/
@Plugin({
name: 'OneSignal',
plugin: 'onesignal-cordova-plugin',
pluginRef: 'plugins.OneSignal',
repo: 'https://github.com/OneSignal/OneSignal-Cordova-SDK'
@@ -32,19 +38,107 @@ import { Observable } from 'rxjs/Observable';
export class OneSignal {
/**
* Only required method you need to call to setup OneSignal to receive push notifications. Call this from the `deviceready` event.
*
* @param {appId} Your AppId from your OneSignal app
* @param {options} The Google Project Number (which you can get from the Google Developer Potal) and the autoRegister option.
* @returns {Observable} when a notification is received. Handle your notification action here.
* constants to use in inFocusDisplaying()
*/
@Cordova({ observable: true })
static init(appId: string,
options: {
googleProjectNumber: string,
autoRegister: boolean
}): Observable<any> { return; }
static OSInFocusDisplayOption = {
None: 0,
InAppAlert : 1,
Notification : 2
};
/**
* Start the initialization process. Once you are done configuring OneSignal, call the endInit function.
*
* @param {string} appId Your AppId from your OneSignal app
* @param {string} googleProjectNumber The Google Project Number (which you can get from the Google Developer Portal) and the autoRegister option.
*/
@Cordova({ sync: true })
static startInit(appId: string, googleProjectNumber: string): any { return; }
/**
* Callback to run when a notification is received
* @return {Observable<any>}
*/
@Cordova({
observable: true
})
static handleNotificationReceived(): Observable<any> { return; }
/**
* Callback to run when a notification is opened
* @return {Observable<any>}
*/
@Cordova({
observable: true
})
static handleNotificationOpened(): Observable<any> { return; }
/**
*
* @param settings
*/
@Cordova({ sync: true })
static iOSSettings(settings: {
kOSSettingsKeyInAppLaunchURL: boolean;
kOSSettingsKeyAutoPrompt: boolean;
}): any { return; }
@Cordova({ sync: true })
static endInit(): any { return; }
/**
* Retrieve a list of tags that have been set on the user from the OneSignal server.
*
* @returns {Promise} Returns a Promise that resolves when tags are recieved.
*/
@Cordova()
static getTags(): Promise<any> { return; }
/**
* Lets you retrieve the OneSignal user id and device token.
* Your handler is called after the device is successfully registered with OneSignal.
*
* @returns {Promise} Returns a Promise that reolves if the device was successfully registered.
* It returns a JSON with `userId`and `pushToken`.
*/
@Cordova()
static getIds(): Promise<any> { return; }
/**
* Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users.
* Recommend using sendTags over sendTag if you need to set more than one tag on a user at a time.
*
* @param {string} Key of your choosing to create or update.
* @param {string} Value to set on the key. NOTE: Passing in a blank String deletes the key, you can also call deleteTag.
*/
@Cordova({ sync: true })
static sendTag(key: string, value: string): void { }
/**
* Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users.
* Recommend using sendTags over sendTag if you need to set more than one tag on a user at a time.
*
* @param {string} Pass a json object with key/value pairs like: {key: "value", key2: "value2"}
*/
@Cordova({ sync: true })
static sendTags(json: any): void { }
/**
* Deletes a tag that was previously set on a user with `sendTag` or `sendTags`. Use `deleteTags` if you need to delete more than one.
*
* @param {string} Key to remove.
*/
@Cordova({ sync: true })
static deleteTag(key: string): void { }
/**
* Deletes tags that were previously set on a user with `sendTag` or `sendTags`.
*
* @param {Array<string>} Keys to remove.
*/
@Cordova({ sync: true })
static deleteTags(keys: string[]): void { }
/**
* Call this when you would like to prompt an iOS user to accept push notifications with the default system prompt.
@@ -53,60 +147,6 @@ export class OneSignal {
@Cordova({ sync: true })
static registerForPushNotifications(): void { }
/**
* Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users.
* Recommend using sendTags over sendTag if you need to set more than one tag on a user at a time.
*
* @param {key} Key of your choosing to create or update.
* @param {value} Value to set on the key. NOTE: Passing in a blank String deletes the key, you can also call deleteTag.
*/
@Cordova({ sync: true })
static sendTag(key: string, value: string): void { }
/**
* Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users.
* Recommend using sendTags over sendTag if you need to set more than one tag on a user at a time.
*
* @param {json} Pass a json object with key/value pairs like: {key: "value", key2: "value2"}
*/
@Cordova({ sync: true })
static sendTags(json: any): void { }
/**
* Retrieve a list of tags that have been set on the user from the OneSignal server.
*
* @returns {Promise} Returns a Promise that resolves when tags are recieved.
*/
@Cordova()
static getTags(): Promise<any> { return; }
/**
* Deletes a tag that was previously set on a user with `sendTag` or `sendTags`. Use `deleteTags` if you need to delete more than one.
*
* @param {key} Key to remove.
*/
@Cordova({ sync: true })
static deleteTag(key: string): void { }
/**
* Deletes tags that were previously set on a user with `sendTag` or `sendTags`.
*
* @param {keys} Keys to remove.
*/
@Cordova({ sync: true })
static deleteTags(keys: string[]): void { }
/**
* Lets you retrieve the OneSignal user id and device token.
* Your handler is called after the device is successfully registered with OneSignal.
*
* @returns {Promise} Returns a Promise that reolves if the device was successfully registered.
* It returns a JSON with `userId`and `pushToken`.
*/
@Cordova()
static getIds(): Promise<any> { return; }
/**
* Warning:
* Only applies to Android and Amazon. You can call this from your UI from a button press for example to give your user's options for your notifications.
@@ -114,7 +154,7 @@ export class OneSignal {
* By default OneSignal always vibrates the device when a notification is displayed unless the device is in a total silent mode.
* Passing false means that the device will only vibrate lightly when the device is in it's vibrate only mode.
*
* @param {enable} false to disable vibrate, true to re-enable it.
* @param {boolean} false to disable vibrate, true to re-enable it.
*/
@Cordova({ sync: true })
static enableVibrate(enable: boolean): void { }
@@ -126,38 +166,25 @@ export class OneSignal {
* By default OneSignal plays the system's default notification sound when the device's notification system volume is turned on.
* Passing false means that the device will only vibrate unless the device is set to a total silent mode.
*
* @param {enable} false to disable sound, true to re-enable it.
* @param {boolean} false to disable sound, true to re-enable it.
*/
@Cordova({ sync: true })
static enableSound(enable: boolean): void { }
/**
* Warning:
* Only applies to Android and Amazon devices.
*
* By default this is false and notifications will not be shown when the user is in your app, instead the notificationOpenedCallback is fired.
* If set to true notifications will always show in the notification area and notificationOpenedCallback will not fire until the user taps on the notification.
* Setting to control how OneSignal notifications will be shown when one is received while your app is in focus. By default this is set to inAppAlert, which can be helpful during development.
*
* @param {enable} enable
* @param {number} displayOption Options are 0 = None, 1 = InAppAlert, and 2 = Notification.
*/
@Cordova({ sync: true })
static enableNotificationsWhenActive(enable: boolean): void { }
/**
* By default this is false and notifications will not be shown when the user is in your app, instead the notificationOpenedCallback is fired.
* If set to true notifications will be shown as native alert boxes if a notification is received when the user is in your app.
* The notificationOpenedCallback is then fired after the alert box is closed.
*
* @param {enable} enable
*/
@Cordova({ sync: true })
static enableInAppAlertNotification(enable: boolean): void { }
static inFocusDisplaying(displayOption: number): void { }
/**
* You can call this method with false to opt users out of receiving all notifications through OneSignal.
* You can pass true later to opt users back into notifications.
*
* @param {enable} enable
* @param {boolean} enable
*/
@Cordova({ sync: true })
static setSubscription(enable: boolean): void { }
@@ -168,68 +195,7 @@ export class OneSignal {
* @returns {Promise} Returns a Promise that resolves if the notification was send successfully.
*/
@Cordova()
static postNotification(notificationObj: {
app_id: string,
contents: any,
headings?: any,
isIos?: boolean,
isAndroid?: boolean,
isWP?: boolean,
isWP_WNS?: boolean,
isAdm?: boolean,
isChrome?: boolean,
isChromeWeb?: boolean,
isSafari?: boolean,
isAnyWeb?: boolean,
included_segments?: string[],
excluded_segments?: string[],
include_player_ids?: string[],
include_ios_tokens?: string[],
include_android_reg_ids?: string[],
include_wp_uris?: string[],
include_wp_wns_uris?: string[],
include_amazon_reg_ids?: string[],
include_chrome_reg_ids?: string[],
include_chrome_web_reg_ids?: string[],
app_ids?: string[];
tags?: any[],
ios_badgeType?: string,
ios_badgeCount?: number,
ios_sound?: string,
android_sound?: string,
adm_sound?: string,
wp_sound?: string,
wp_wns_sound?: string,
data?: any,
buttons?: any,
small_icon?: string,
large_icon?: string,
big_picture?: string,
adm_small_icon?: string,
adm_large_icon?: string,
adm_big_picture?: string,
chrome_icon?: string,
chrome_big_picture?: string,
chrome_web_icon?: string,
firefox_icon?: string,
url?: string,
send_after?: string,
delayed_option?: string,
delivery_time_of_day?: string,
android_led_color?: string,
android_accent_color?: string,
android_visibility?: number,
content_available?: boolean,
amazon_background_data?: boolean,
template_id?: string,
android_group?: string,
android_group_message?: any,
adm_group?: string,
adm_group_message?: any,
ttl?: number,
priority?: number,
ios_category?: string
}): Promise<any> { return; }
static postNotification(notificationObj: OneSignalNotification): Promise<any> { return; }
/**
* Prompts the user for location permission to allow geotagging based on the "Location radius" filter on the OneSignal dashboard.
@@ -237,6 +203,13 @@ export class OneSignal {
@Cordova({ sync: true })
static promptLocation(): void { }
/**
*
* @param email {string}
*/
@Cordova({ sync: true })
static syncHashedEmail(email: string): void { }
/**
* Enable logging to help debug if you run into an issue setting up OneSignal.
* The logging levels are as follows: 0 = None, 1= Fatal, 2 = Errors, 3 = Warnings, 4 = Info, 5 = Debug, 6 = Verbose
@@ -252,3 +225,66 @@ export class OneSignal {
}): void { }
}
export interface OneSignalNotification {
app_id: string;
contents: any;
headings?: any;
isIos?: boolean;
isAndroid?: boolean;
isWP?: boolean;
isWP_WNS?: boolean;
isAdm?: boolean;
isChrome?: boolean;
isChromeWeb?: boolean;
isSafari?: boolean;
isAnyWeb?: boolean;
included_segments?: string[];
excluded_segments?: string[];
include_player_ids?: string[];
include_ios_tokens?: string[];
include_android_reg_ids?: string[];
include_wp_uris?: string[];
include_wp_wns_uris?: string[];
include_amazon_reg_ids?: string[];
include_chrome_reg_ids?: string[];
include_chrome_web_reg_ids?: string[];
app_ids?: string[];
tags?: any[];
ios_badgeType?: string;
ios_badgeCount?: number;
ios_sound?: string;
android_sound?: string;
adm_sound?: string;
wp_sound?: string;
wp_wns_sound?: string;
data?: any;
buttons?: any;
small_icon?: string;
large_icon?: string;
big_picture?: string;
adm_small_icon?: string;
adm_large_icon?: string;
adm_big_picture?: string;
chrome_icon?: string;
chrome_big_picture?: string;
chrome_web_icon?: string;
firefox_icon?: string;
url?: string;
send_after?: string;
delayed_option?: string;
delivery_time_of_day?: string;
android_led_color?: string;
android_accent_color?: string;
android_visibility?: number;
content_available?: boolean;
amazon_background_data?: boolean;
template_id?: string;
android_group?: string;
android_group_message?: any;
adm_group?: string;
adm_group_message?: any;
ttl?: number;
priority?: number;
ios_category?: string;
}

View File

@@ -6,47 +6,98 @@ import { Plugin, Cordova } from './plugin';
*
* @usage
* ```
* import {PayPal} from 'ionic-native';
* import {PayPal, PayPalPayment, PayPalConfiguration} from "ionic-native";
*
* PayPal.init({
* "PayPalEnvironmentProduction": "YOUR_PRODUCTION_CLIENT_ID",
"PayPalEnvironmentSandbox": "YOUR_SANDBOX_CLIENT_ID"
})
* .then(onSuccess)
* .catch(onError);
* "PayPalEnvironmentProduction": "YOUR_PRODUCTION_CLIENT_ID",
* "PayPalEnvironmentSandbox": "YOUR_SANDBOX_CLIENT_ID"
* }).then(() => {
* // Environments: PayPalEnvironmentNoNetwork, PayPalEnvironmentSandbox, PayPalEnvironmentProduction
* PayPal.prepareToRender('PayPalEnvironmentSandbox', new PayPalConfiguration({
* // Only needed if you get an "Internal Service Error" after PayPal login!
* //payPalShippingAddressOption: 2 // PayPalShippingAddressOptionPayPal
* })).then(() => {
* let payment = new PayPalPayment('3.33', 'USD', 'Description', 'sale');
* PayPal.renderSinglePaymentUI(payment).then(() => {
* // Successfully paid
*
* // Example sandbox response
* //
* // {
* // "client": {
* // "environment": "sandbox",
* // "product_name": "PayPal iOS SDK",
* // "paypal_sdk_version": "2.16.0",
* // "platform": "iOS"
* // },
* // "response_type": "payment",
* // "response": {
* // "id": "PAY-1AB23456CD789012EF34GHIJ",
* // "state": "approved",
* // "create_time": "2016-10-03T13:33:33Z",
* // "intent": "sale"
* // }
* // }
* }, () => {
* // Error or render dialog closed without being successful
* });
* }, () => {
* // Error in configuration
* });
* }, () => {
* // Error in initialization, maybe PayPal isn't supported or something else
* });
* ```
* @interfaces
* PayPalEnvironment
* PayPalConfigurationOptions
* @classes
* PayPalPayment
* PayPalItem
* PayPalPaymentDetails
* PayPalShippingAddress
*/
@Plugin({
name: 'PayPal',
plugin: 'com.paypal.cordova.mobilesdk',
pluginRef: 'PayPalMobile',
repo: 'https://github.com/paypal/PayPal-Cordova-Plugin'
})
export class PayPal {
/**
* Retrieve the version of the PayPal iOS SDK library. Useful when contacting support.
*/
@Cordova()
static version(): Promise<string> {return; }
/**
* You must preconnect to PayPal to prepare the device for processing payments.
* This improves the user experience, by making the presentation of the
* UI faster. The preconnect is valid for a limited time, so
* the recommended time to preconnect is on page load.
*
* @param {String} environment: available options are "PayPalEnvironmentNoNetwork", "PayPalEnvironmentProduction" and "PayPalEnvironmentSandbox"
* @param {PayPalConfiguration} configuration: For Future Payments merchantName, merchantPrivacyPolicyURL and merchantUserAgreementURL must be set be set
* @param {PayPalEnvironment} clientIdsForEnvironments: set of client ids for environments
*/
@Cordova()
static init(environment: PayPalEnvironment, configuration?: PayPalConfiguration): Promise<any> {return; }
static init(clientIdsForEnvironments: PayPalEnvironment): Promise<any> {return; }
/**
* Retreive the version of PayPal iOS SDK Library.
*/
* You must preconnect to PayPal to prepare the device for processing payments.
* This improves the user experience, by making the presentation of the UI faster.
* The preconnect is valid for a limited time, so the recommended time to preconnect is on page load.
*
* @param {String} environment: available options are "PayPalEnvironmentNoNetwork", "PayPalEnvironmentProduction" and "PayPalEnvironmentSandbox"
* @param {PayPalConfiguration} configuration: PayPalConfiguration object, for Future Payments merchantName, merchantPrivacyPolicyURL and merchantUserAgreementURL must be set be set
**/
@Cordova()
static version(): Promise<string> {return; }
static prepareToRender(environment: string, configuration: PayPalConfiguration): Promise<any> {return; }
/**
* Start PayPal UI to collect payment from the user.
* See https://developer.paypal.com/webapps/developer/docs/integration/mobile/ios-integration-guide/
* for more documentation of the params.
*
* @param {PayPalPayment} payment: PayPalPayment object
* @param {PayPalPayment} payment PayPalPayment object
*/
@Cordova()
static renderSinglePaymentUI(payment: PayPalPayment): Promise<any> {return; }
@@ -72,113 +123,341 @@ export class PayPal {
/**
* Please Read Docs on Profile Sharing at https://github.com/paypal/PayPal-iOS-SDK#profile-sharing
*
* @param {Array<string>} scopes: scopes Set of requested scope-values. Accepted scopes are: openid, profile, address, email, phone, futurepayments and paypalattributes
* @param {Array<string>} scopes scopes Set of requested scope-values. Accepted scopes are: openid, profile, address, email, phone, futurepayments and paypalattributes
* See https://developer.paypal.com/docs/integration/direct/identity/attributes/ for more details
**/
@Cordova()
static renderProfileSharingUI(scopes: string[]): Promise<any> {return; }
}
export interface PayPalEnvironment {
PayPalEnvironmentProduction: string;
PayPalEnvironmentSandbox: string;
}
/**
* @private
*/
export declare class PayPalPayment {
/**
* Convenience constructor.
* Returns a PayPalPayment with the specified amount, currency code, and short description.
* @param {String} amount: The amount of the payment.
* @param {String} currencyCode: The ISO 4217 currency for the payment.
* @param {String} shortDescription: A short descripton of the payment.
* @param {String} intent: "Sale" for an immediate payment.
*/
new(amount: string, currencyCode: string, shortDescription: string, intent: string);
export class PayPalPayment {
constructor(amount: string, currency: string, shortDescription: string, intent: string, details?: PayPalPaymentDetails) {
this.amount = amount;
this.currency = currency;
this.shortDescription = shortDescription;
this.intent = intent;
this.details = details;
}
/**
* Optional invoice number, for your tracking purposes. (up to 256 characters)
* @param {String} invoiceNumber: The invoice number for the payment.
* The amount of the payment.
*/
invoiceNumber(invoiceNumber: string): void;
amount: string;
/**
* Optional text, for your tracking purposes. (up to 256 characters)
* @param {String} custom: The custom text for the payment.
* The ISO 4217 currency for the payment.
*/
custom(custom: string): void;
currency: string;
/**
* Optional text which will appear on the customer's credit card statement. (up to 22 characters)
* @param {String} softDescriptor: credit card text for payment
* A short description of the payment.
*/
softDescriptor(softDescriptor: string): void;
shortDescription: string;
/**
* "Sale" for an immediate payment.
*/
intent: string;
/**
* Optional Build Notation code ("BN code"), obtained from partnerprogram@paypal.com,
* for your tracking purposes.
* @param {String} bnCode: bnCode for payment
*/
bnCode(bnCode: string): void;
bnCode: string = 'PhoneGap_SP';
/**
* Optional invoice number, for your tracking purposes. (up to 256 characters)
*/
invoiceNumber: string;
/**
* Optional array of PayPalItem objects. @see PayPalItem
* @note If you provide one or more items, be sure that the various prices correctly
* sum to the payment `amount` or to `paymentDetails.subtotal`.
* @param items {Array<PayPalItem>} Optional
* Optional text, for your tracking purposes. (up to 256 characters)
*/
items(items?: any): void;
custom: string;
/**
* Optional text which will appear on the customer's credit card statement. (up to 22 characters)
*/
softDescriptor: string;
/**
* Optional array of PayPalItem objects.
*/
items: string;
/**
* Optional customer shipping address, if your app wishes to provide this to the SDK.
* @note make sure to set `payPalShippingAddressOption` in PayPalConfiguration to 1 or 3.
* @param {PayPalShippingAddress} shippingAddress: PayPalShippingAddress object
*/
shippingAddress(shippingAddress: PayPalShippingAddress): void;
shippingAddress: string;
/**
* Optional PayPalPaymentDetails object
*/
details: PayPalPaymentDetails;
}
/**
* @private
*/
export class PayPalItem {
/**
* The PayPalItem class defines an optional itemization for a payment.
* @see https://developer.paypal.com/docs/api/#item-object for more details.
* @param {String} name: Name of the item. 127 characters max
* @param {Number} quantity: Number of units. 10 characters max.
* @param {String} price: Unit price for this item 10 characters max.
* May be negative for "coupon" etc
* @param {String} currency: ISO standard currency code.
* @param {String} sku: The stock keeping unit for this item. 50 characters max (optional)
*/
constructor(name: string, quantity: number, price: string, currency: string, sku: string) {
this.name = name;
this.quantity = quantity;
this.price = price;
this.currency = currency;
this.sku = sku;
}
/**
* Name of the item. 127 characters max
*/
name: string;
/**
* Number of units. 10 characters max.
*/
quantity: number;
/**
* Unit price for this item 10 characters max.
*/
price: string;
/**
* ISO standard currency code.
*/
currency: string;
/**
* The stock keeping unit for this item. 50 characters max (optional)
*/
sku: string;
}
/**
* @private
*/
export class PayPalPaymentDetails {
/**
* The PayPalPaymentDetails class defines optional amount details.
* @param {String} subtotal: Sub-total (amount) of items being paid for. 10 characters max with support for 2 decimal places.
* @param {String} shipping: Amount charged for shipping. 10 characters max with support for 2 decimal places.
* @param {String} tax: Amount charged for tax. 10 characters max with support for 2 decimal places.
*/
constructor(subtotal: string, shipping: string, tax: string) {
this.subtotal = subtotal;
this.shipping = shipping;
this.tax = tax;
}
/**
* Sub-total (amount) of items being paid for. 10 characters max with support for 2 decimal places.
*/
subtotal: string;
/**
* Amount charged for shipping. 10 characters max with support for 2 decimal places.
*/
shipping: string;
/**
* Amount charged for tax. 10 characters max with support for 2 decimal places.
*/
tax: string;
}
/**
* @private
*/
export interface PayPalConfigurationOptions {
/**
* Will be overridden by email used in most recent PayPal login.
*/
defaultUserEmail?: string;
/**
* Will be overridden by phone country code used in most recent PayPal login
*/
defaultUserPhoneCountryCode?: string;
/**
* Will be overridden by phone number used in most recent PayPal login.
*/
defaultUserPhoneNumber?: string;
/**
* Your company name, as it should be displayed to the user when requesting consent via a PayPalFuturePaymentViewController.
*/
merchantName?: string;
merchantPrivacyPolicyUrl?: string;
merchantUserAgreementUrl?: string;
/**
* URL of your company's privacy policy, which will be offered to the user when requesting consent via a PayPalFuturePaymentViewController.
*/
merchantPrivacyPolicyURL?: string;
/**
* URL of your company's user agreement, which will be offered to the user when requesting consent via a PayPalFuturePaymentViewController.
*/
merchantUserAgreementURL?: string;
/**
* If set to NO, the SDK will only support paying with PayPal, not with credit cards.
* This applies only to single payments (via PayPalPaymentViewController).
* Future payments (via PayPalFuturePaymentViewController) always use PayPal.
* Defaults to true
*/
acceptCreditCards?: boolean;
/**
* For single payments, options for the shipping address.
* - 0 - PayPalShippingAddressOptionNone: no shipping address applies.
* - 1 - PayPalShippingAddressOptionProvided: shipping address will be provided by your app,
* in the shippingAddress property of PayPalPayment.
* - 2 - PayPalShippingAddressOptionPayPal: user will choose from shipping addresses on file
* for their PayPal account.
* - 3 - PayPalShippingAddressOptionBoth: user will choose from the shipping address provided by your app,
* in the shippingAddress property of PayPalPayment, plus the shipping addresses on file for the user's PayPal account.
* Defaults to 0 (PayPalShippingAddressOptionNone).
*/
payPalShippingAddressOption?: number;
/**
* If set to YES, then if the user pays via their PayPal account,
* the SDK will remember the user's PayPal username or phone number;
* if the user pays via their credit card, then the SDK will remember
* the PayPal Vault token representing the user's credit card.
*
* If set to NO, then any previously-remembered username, phone number, or
* credit card token will be erased, and subsequent payment information will
* not be remembered.
*
* Defaults to YES.
*/
rememberUser?: boolean;
/**
* If not set, or if set to nil, defaults to the device's current language setting.
*
* Can be specified as a language code ("en", "fr", "zh-Hans", etc.) or as a locale ("en_AU", "fr_FR", "zh-Hant_HK", etc.).
* If the library does not contain localized strings for a specified locale, then will fall back to the language. E.g., "es_CO" -> "es".
* If the library does not contain localized strings for a specified language, then will fall back to American English.
*
* If you specify only a language code, and that code matches the device's currently preferred language,
* then the library will attempt to use the device's current region as well.
* E.g., specifying "en" on a device set to "English" and "United Kingdom" will result in "en_GB".
*/
languageOrLocale?: string;
/**
* Normally, the SDK blurs the screen when the app is backgrounded,
* to obscure credit card or PayPal account details in the iOS-saved screenshot.
* If your app already does its own blurring upon backgrounding, you might choose to disable this.
* Defaults to NO.
*/
disableBlurWhenBackgrounding?: boolean;
/**
* If you will present the SDK's view controller within a popover, then set this property to YES.
* Defaults to NO. (iOS only)
*/
presentingInPopover?: boolean;
/**
* Sandbox credentials can be difficult to type on a mobile device. Setting this flag to YES will
* cause the sandboxUserPassword and sandboxUserPin to always be pre-populated into login fields.
*/
forceDefaultsInSandbox?: boolean;
sandboxUserPAssword?: string;
/**
* Password to use for sandbox if 'forceDefaultsInSandbox' is set.
*/
sandboxUserPassword?: string;
/**
* PIN to use for sandbox if 'forceDefaultsInSandbox' is set.
*/
sandboxUserPin?: string;
}
/**
* @private
*/
export declare class PayPalConfiguration {
export class PayPalConfiguration implements PayPalConfigurationOptions {
/**
* You use a PayPalConfiguration object to configure many aspects of how the SDK behaves.
* see defaults for options available
*/
new(options: PayPalConfigurationOptions);
constructor(options?: PayPalConfigurationOptions) {
let defaults: PayPalConfigurationOptions = {
defaultUserEmail: null,
defaultUserPhoneCountryCode: null,
defaultUserPhoneNumber: null,
merchantName: null,
merchantPrivacyPolicyURL: null,
merchantUserAgreementURL: null,
acceptCreditCards: true,
payPalShippingAddressOption: 0,
rememberUser: true,
languageOrLocale: null,
disableBlurWhenBackgrounding: false,
presentingInPopover: false,
forceDefaultsInSandbox: false,
sandboxUserPassword: null,
sandboxUserPin: null
};
if (options && typeof options === 'object') {
for (var i in options) {
if (defaults.hasOwnProperty(i)) {
defaults[i] = options[i];
}
}
}
return defaults;
}
}
/**
* @private
*/
export declare class PayPalShippingAddress {
export class PayPalShippingAddress {
/**
* See the documentation of the individual properties for more detail.
* @param {String} recipientName: Name of the recipient at this address. 50 characters max.
* @param {String} line1: Line 1 of the address (e.g., Number, street, etc). 100 characters max.
* @param {String} Line 2 of the address (e.g., Suite, apt #, etc). 100 characters max. Optional.
* @param {String} line2: Line 2 of the address (e.g., Suite, apt #, etc). 100 characters max. Optional.
* @param {String} city: City name. 50 characters max.
* @param {String} state: 2-letter code for US states, and the equivalent for other countries. 100 characters max. Required in certain countries.
* @param {String} postalCode: ZIP code or equivalent is usually required for countries that have them. 20 characters max. Required in certain countries.
* @param {String} countryCode: 2-letter country code. 2 characters max.
*/
new(recipientName: string, line1: string, line2: string, city: string, state: string, postalCode: string, countryCode: string);
constructor(recipientName: string, line1: string, line2: string, city: string, state: string, postalCode: string, countryCode: string) {
this.recipientName = recipientName;
this.line1 = line1;
this.line2 = line2;
this.city = city;
this.state = state;
this.postalCode = postalCode;
this.countryCode = countryCode;
}
/**
* Name of the recipient at this address. 50 characters max.
*/
recipientName: string;
/**
* Line 1 of the address (e.g., Number, street, etc). 100 characters max.
*/
line1: string;
/**
* Line 2 of the address (e.g., Suite, apt #, etc). 100 characters max. Optional.
*/
line2: string;
/**
* City name. 50 characters max.
*/
city: string;
/**
* 2-letter code for US states, and the equivalent for other countries. 100 characters max. Required in certain countries.
*/
state: string;
/**
* ZIP code or equivalent is usually required for countries that have them. 20 characters max. Required in certain countries.
*/
postalCode: string;
/**
* 2-letter country code. 2 characters max.
*/
countryCode: string;
}

View File

@@ -12,6 +12,7 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'PhotoViewer',
plugin: 'com-sarriaroman-photoviewer',
pluginRef: 'PhotoViewer',
repo: 'https://github.com/sarriaroman/photoviewer'

View File

@@ -20,6 +20,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'PinDialog',
plugin: 'cordova-plugin-pin-dialog',
pluginRef: 'plugins.pinDialog',
repo: 'https://github.com/Paldom/PinDialog'

View File

@@ -18,7 +18,7 @@ export const getPlugin = function(pluginRef: string): any {
* @param pluginObj
* @param method
*/
export const pluginWarn = function(pluginObj: any, method: string) {
export const pluginWarn = function(pluginObj: any, method?: string) {
let pluginName = pluginObj.name, plugin = pluginObj.plugin;
if (method) {
console.warn('Native: tried calling ' + pluginName + '.' + method + ', but the ' + pluginName + ' plugin is not installed.');
@@ -41,6 +41,11 @@ export const cordovaWarn = function(pluginName: string, method: string) {
}
};
function setIndex(args: any[], opts: any = {}, resolve?: Function, reject?: Function): any {
// ignore resolve and reject in case sync
if (opts.sync) {
return args;
}
// If the plugin method expects myMethod(success, err, options)
if (opts.callbackOrder === 'reverse') {
// Get those arguments in the order [resolve, reject, ...restOfArgs]
@@ -60,15 +65,33 @@ function setIndex(args: any[], opts: any = {}, resolve?: Function, reject?: Func
obj[opts.errorName] = reject;
args.push(obj);
} else if (typeof opts.successIndex !== 'undefined' || typeof opts.errorIndex !== 'undefined') {
// If we've specified a success/error index
args.splice(opts.successIndex, 0, resolve);
const setSuccessIndex = () => {
// If we've specified a success/error index
if (opts.successIndex > args.length) {
args[opts.successIndex] = resolve;
} else {
args.splice(opts.successIndex, 0, resolve);
}
};
// We don't want that the reject cb gets spliced into the position of an optional argument that has not been defined and thus causing non expected behaviour.
if (opts.errorIndex > args.length) {
args[opts.errorIndex] = reject; // insert the reject fn at the correct specific index
const setErrorIndex = () => {
// We don't want that the reject cb gets spliced into the position of an optional argument that has not been defined and thus causing non expected behaviour.
if (opts.errorIndex > args.length) {
args[opts.errorIndex] = reject; // insert the reject fn at the correct specific index
} else {
args.splice(opts.errorIndex, 0, reject); // otherwise just splice it into the array
}
};
if (opts.successIndex > opts.errorIndex) {
setErrorIndex();
setSuccessIndex();
} else {
args.splice(opts.errorIndex, 0, reject); // otherwise just splice it into the array
setSuccessIndex();
setErrorIndex();
}
} else {
// Otherwise, let's tack them on to the end of the argument list
// which is 90% of cases
@@ -322,10 +345,24 @@ export function Plugin(config) {
cls[k] = config[k];
}
cls['installed'] = function() {
cls['installed'] = function(printWarning?: boolean) {
return !!getPlugin(config.pluginRef);
};
cls['getPlugin'] = function() {
return getPlugin(config.pluginRef);
};
cls['checkInstall'] = function() {
let pluginInstance = getPlugin(config.pluginRef);
if (!pluginInstance) {
pluginWarn(cls);
return false;
}
return true;
};
return cls;
};
}

View File

@@ -16,9 +16,10 @@ import { Plugin, Cordova } from './plugin';
* ```
*/
@Plugin({
name: 'PowerManagement',
plugin: 'cordova-plugin-powermanagement-orig',
pluginRef: 'https://github.com/Viras-/cordova-plugin-powermanagement',
repo: 'powerManagement'
pluginRef: 'powerManagement',
repo: 'https://github.com/Viras-/cordova-plugin-powermanagement'
})
export class PowerManagement {
/**

View File

@@ -61,6 +61,7 @@ export interface PrintOptions {
* ```
*/
@Plugin({
name: 'Printer',
plugin: 'de.appplant.cordova.plugin.printer',
pluginRef: 'cordova.plugins.printer',
repo: 'https://github.com/katzer/cordova-plugin-printer.git',

View File

@@ -134,8 +134,9 @@ export interface PushNotification {
* successHandler gets called when background push processing is successfully completed.
* @param successHandler
* @param errorHandler
* @param id
*/
finish(successHandler: () => any, errorHandler: () => any): void;
finish(successHandler: () => any, errorHandler: () => any, id?: string): void;
}
export interface IOSPushOptions {
@@ -285,6 +286,7 @@ declare var PushNotification: {
* ```
*/
@Plugin({
name: 'Push',
plugin: 'phonegap-plugin-push',
pluginRef: 'PushNotification',
repo: 'https://github.com/phonegap/phonegap-plugin-push'

View File

@@ -39,6 +39,7 @@ import { Cordova, Plugin } from './plugin';
* ```
*/
@Plugin({
name: 'SafariViewController',
plugin: 'cordova-plugin-safariviewcontroller',
pluginRef: 'SafariViewController',
platforms: ['iOS', 'Android'],

View File

@@ -23,9 +23,9 @@ declare var window;
* ```
*
* @advanced
*
*
* Accepted orientation values:
*
*
* | Value | Description |
* |-------------------------------|------------------------------------------------------------------------------|
* | portrait-primary | The orientation is in the primary portrait mode. |
@@ -34,9 +34,10 @@ declare var window;
* | landscape-secondary | The orientation is in the secondary landscape mode. |
* | portrait | The orientation is either portrait-primary or portrait-secondary (sensor). |
* | landscape | The orientation is either landscape-primary or landscape-secondary (sensor). |
*
*
*/
@Plugin({
name: 'ScreenOrientation',
plugin: 'cordova-plugin-screen-orientation',
pluginRef: 'window.screen',
repo: 'https://github.com/apache/cordova-plugin-screen-orientation',

View File

@@ -17,6 +17,7 @@ declare var navigator: any;
* ```
*/
@Plugin({
name: 'Screenshot',
plugin: 'https://github.com/gitawego/cordova-screenshot.git',
pluginRef: 'navigator.screenshot',
repo: 'https://github.com/gitawego/cordova-screenshot.git'

View File

@@ -40,6 +40,7 @@ declare var cordova: any;
* ```
*/
@Plugin({
name: 'SecureStorage',
plugin: 'cordova-plugin-secure-storage',
pluginRef: 'plugins.securestorage',
repo: 'https://github.com/Crypho/cordova-plugin-secure-storage',

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