forked from ionic-team/ionic-docs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnative.json
More file actions
3474 lines (3474 loc) · 276 KB
/
Copy pathnative.json
File metadata and controls
3474 lines (3474 loc) · 276 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[
{
"packageName": "@ionic-native/abbyy-rtr",
"displayName": "ABBYY Real-Time Recognition",
"description": "\nThis plugin allows to use the Text Capture and Data Capture features of\nABBYY Real-Time Recognition SDK (RTR SDK) in apps.\n",
"usage": "\n```typescript\nimport { AbbyyRTR } from '@ionic-native/abbyy-rtr/ngx';\n\n\nconstructor(private abbyyRTR: AbbyyRTR) { }\n\n...\n\n\nthis.abbyyRTR.startTextCapture(options)\n .then((res: any) => console.log(res))\n .catch((error: any) => console.error(error));\n\n\nthis.abbyyRTR.startDataCapture(options)\n .then((res: any) => console.log(res))\n .catch((error: any) => console.error(error));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/abbyysdk/RTR-SDK.Cordova",
"cordovaPlugin": {
"name": "cordova-plugin-abbyy-rtr-sdk"
}
},
{
"packageName": "@ionic-native/action-sheet",
"displayName": "Action Sheet",
"description": "\nThe ActionSheet plugin shows a native list of options the user can choose from.\n\nRequires Cordova plugin: `cordova-plugin-actionsheet`. For more info, please see the [ActionSheet plugin docs](https://github.com/EddyVerbruggen/cordova-plugin-actionsheet).\n",
"usage": "\n```typescript\nimport { ActionSheet, ActionSheetOptions } from '@ionic-native/action-sheet/ngx';\n\nconstructor(private actionSheet: ActionSheet) { }\n\n...\n\n\nlet buttonLabels = ['Share via Facebook', 'Share via Twitter'];\n\nconst options: ActionSheetOptions = {\n title: 'What do you want with this image?',\n subtitle: 'Choose an action',\n buttonLabels: buttonLabels,\n addCancelButtonWithLabel: 'Cancel',\n addDestructiveButtonWithLabel: 'Delete',\n androidTheme: this.actionSheet.ANDROID_THEMES.THEME_HOLO_DARK,\n destructiveButtonLast: true\n}\n\nthis.actionSheet.show(options).then((buttonIndex: number) => {\n console.log('Button pressed: ' + buttonIndex);\n});\n```",
"platforms": [
"Android",
"Browser",
"iOS",
"Windows",
"Windows Phone 8"
],
"repo": "https://github.com/EddyVerbruggen/cordova-plugin-actionsheet",
"cordovaPlugin": {
"name": "cordova-plugin-actionsheet"
}
},
{
"packageName": "@ionic-native/adjust",
"displayName": "Adjust",
"description": "\nThis is the Ionic Cordova SDK of Adjust™. You can read more about Adjust™ at adjust.com.\n\nRequires Cordova plugin: `com.adjust.sdk`. For more info, please see the [Adjust Cordova SDK](https://github.com/adjust/cordova_sdk)\n",
"usage": "\n```typescript\n import { Adjust, AdjustConfig, AdjustEnvironment } from '@ionic-native/adjust/ngx';\n\n constructor(private adjust: Adjust) { }\n\n ...\n\n const config = new AdjustConfig('APP-TOKEN-HERE', AdjustEnvironment.Sandbox);\n config.logLevel = AdjustLogLevel.Verbose;\n // Set other config properties.\n adjust.create(config);\n\n```",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/adjust/cordova_sdk",
"cordovaPlugin": {
"name": "com.adjust.sdk"
}
},
{
"packageName": "@ionic-native/admob-free",
"displayName": "AdMob Free",
"description": "\nA free, no ad-sharing version of Google AdMob plugin for Cordova.\n\nRequires Cordova plugin: `cordova-plugin-admob-free`. For more info, please see the [AdMob Free plugin docs](https://github.com/ratson/cordova-plugin-admob-free).\n",
"usage": "\n```typescript\nimport { AdMobFree, AdMobFreeBannerConfig } from '@ionic-native/admob-free/ngx';\n\n\nconstructor(private admobFree: AdMobFree) { }\n\n\n...\n\n\nconst bannerConfig: AdMobFreeBannerConfig = {\n // add your config here\n // for the sake of this example we will just use the test config\n isTesting: true,\n autoShow: true\n};\nthis.admobFree.banner.config(bannerConfig);\n\nthis.admobFree.banner.prepare()\n .then(() => {\n // banner Ad is ready\n // if we set autoShow to false, then we will need to call the show method here\n })\n .catch(e => console.log(e));\n\n\n```",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/ratson/cordova-plugin-admob-free",
"cordovaPlugin": {
"name": "cordova-plugin-admob-free"
}
},
{
"packageName": "@ionic-native/admob-plus",
"displayName": "AdMob Plus",
"description": "\nAdMob Plus is the successor of cordova-plugin-admob-free, which provides a cleaner API and build with modern tools.\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/admob-plus/admob-plus",
"cordovaPlugin": {
"name": "cordova-admob-plus"
}
},
{
"packageName": "@ionic-native/admob-pro",
"displayName": "AdMob Pro",
"description": "\nPlugin for Google Ads, including AdMob / DFP (DoubleClick for publisher) and mediations to other Ad networks.\n\nIMPORTANT NOTICE: this plugin takes a percentage out of your earnings if you profit more than $1,000. Read more about this on the plugin's repo. For a completely free alternative, see [AdMobPro Free](../admob-free).",
"usage": "\n```typescript\nimport { AdMobPro } from '@ionic-native/admob-pro/ngx';\nimport { Platform } from '@ionic/angular';\n\nconstructor(private admob: AdMobPro, private platform: Platform ) { }\n\nionViewDidLoad() {\n this.admob.onAdDismiss()\n .subscribe(() => { console.log('User dismissed ad'); });\n}\n\nonClick() {\n let adId;\n if(this.platform.is('android')) {\n adId = 'YOUR_ADID_ANDROID';\n } else if (this.platform.is('ios')) {\n adId = 'YOUR_ADID_IOS';\n }\n this.admob.prepareInterstitial({adId: adId})\n .then(() => { this.admob.showInterstitial(); });\n}\n\n```\n",
"platforms": [
"Android",
"iOS",
"Windows Phone 8"
],
"repo": "https://github.com/floatinghotpot/cordova-admob-pro",
"cordovaPlugin": {
"name": "cordova-plugin-admobpro"
}
},
{
"packageName": "@ionic-native/admob",
"displayName": "Admob",
"description": "\nMost complete Admob plugin with support for [Tappx](http://www.tappx.com/?h=dec334d63287772de859bdb4e977fce6) ads.\nMonetize your apps and games with AdMob ads, using latest Google AdMob SDK. With this plugin you can show AdMob ads easily!\n\n**Supports:**\n- Banner ads (top and bottom)\n- Interstitial ads\n- Rewarded ads\n- [Tappx](http://www.tappx.com/?h=dec334d63287772de859bdb4e977fce6) ads\n",
"usage": "\n```typescript\nimport { Admob, AdmobOptions } from '@ionic-native/admob/ngx';\n\n\nconstructor(private admob: Admob) {\n // Admob options config\n const admobOptions: AdmobOptions = {\n publisherId: 'XXX-XXXX-XXXX',\n interstitialAdId: 'XXX-XXXX-XXXX',\n rewardedAdId: 'XXX-XXXX-XXXX',\n isTesting: true,\n autoShowBanner: false,\n autoShowInterstitial: false,\n autoShowRewarded: false,\n adSize: this.admob.AD_SIZE.BANNER\n };\n\n // Set admob options\n this.admob.setOptions(admobOptions)\n .then(() => console.log('Admob options have been successfully set'))\n .catch(err => console.error('Error setting admob options:', err));\n}\n\n\n\n// (Optionally) Load banner ad, in order to have it ready to show\nthis.admob.createBannerView()\n .then(() => console.log('Banner ad loaded'))\n .catch(err => console.error('Error loading banner ad:', err));\n\n\n// Show banner ad (createBannerView must be called before and onAdLoaded() event raised)\nthis.admob.onAdLoaded().subscribe((ad) => {\n if (ad.adType === this.admob.AD_TYPE.BANNER) {\n this.admob.showBannerAd()\n .then(() => console.log('Banner ad shown'))\n .catch(err => console.error('Error showing banner ad:', err));\n }\n});\n\n\n// Hide banner ad, but do not destroy it, so it can be shown later on\n// See destroyBannerView in order to hide and destroy banner ad\nthis.admob.showBannerAd(false)\n .then(() => console.log('Banner ad hidden'))\n .catch(err => console.error('Error hiding banner ad:', err));\n\n\n\n// Request an interstitial ad, in order to be shown later on\n// It is possible to autoshow it via options parameter, see docs\nthis.admob.requestInterstitialAd()\n .then(() => console.log('Interstitial ad loaded'))\n .catch(err => console.error('Error loading interstitial ad:', err));\n\n\n// Show an interstitial ad (requestInterstitialAd must be called before)\nthis.admob.onAdLoaded().subscribe((ad) => {\n if (ad.adType === this.admob.AD_TYPE.INTERSTITIAL) {\n this.admob.showInterstitialAd()\n .then(() => console.log('Interstitial ad shown'))\n .catch(err => console.error('Error showing interstitial ad:', err));\n }\n});\n\n\n// Request a rewarded ad\nthis.admob.requestRewardedAd()\n .then(() => console.log('Rewarded ad loaded'))\n .catch(err => console.error('Error loading rewarded ad:', err));\n\n\n// Show rewarded ad (requestRewardedAd must be called before)\nthis.admob.onAdLoaded().subscribe((ad) => {\n if (ad.adType === this.admob.AD_TYPE.REWARDED) {\n this.admob.showRewardedAd()\n .then(() => console.log('Rewarded ad shown'))\n .catch(err => console.error('Error showing rewarded ad:', err));\n }\n});\n\n\n// Hide and destroy banner or interstitial ad\nthis.admob.destroyBannerView()\n .then(() => console.log('Banner or interstitial ad destroyed'))\n .catch(err => console.error('Error destroying banner or interstitial ad:', err));\n\n\n\n// On Ad loaded event\nthis.admob.onAdLoaded().subscribe((ad) => {\n if (ad.adType === this.admob.AD_TYPE.BANNER) {\n console.log('Banner ad is loaded');\n this.admob.showBannerAd();\n } else if (ad.adType === this.admob.AD_TYPE.INTERSTITIAL) {\n console.log('Interstitial ad is loaded');\n this.admob.showInterstitialAd();\n } else if (ad.adType === this.admob.AD_TYPE.REWARDED) {\n console.log('Rewarded ad is loaded');\n this.admob.showRewardedAd();\n }\n});\n\n\n\n// On ad failed to load\nthis.admob.onAdFailedToLoad().subscribe(err => console.log('Error loading ad:', err));\n\n\n\n// On interstitial ad opened\nthis.admob.onAdOpened().subscribe(() => console.log('Interstitial ad opened'));\n\n\n\n// On interstitial ad closed\nthis.admob.onAdClosed().subscribe(() => console.log('Interstitial ad closed'));\n\n\n\n// On ad clicked and left application\nthis.admob.onAdLeftApplication().subscribe(() => console.log('Ad lefted application'));\n\n\n\n// On user ad rewarded\nthis.admob.onRewardedAd().subscribe(() => console.log('The user has been rewarded'));\n\n\n\n// On rewarded ad video started\nthis.admob.onRewardedAdVideoStarted().subscribe(() => console.log('Rewarded ad vieo started'));\n\n\n\n// On rewarded ad video completed\nthis.admob.onRewardedAdVideoCompleted().subscribe(() => console.log('Rewarded ad video completed'));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/appfeel/admob-google-cordova",
"cordovaPlugin": {
"name": "cordova-admob"
}
},
{
"packageName": "@ionic-native/aes-256",
"displayName": "AES256",
"description": "\nThis cordova ionic plugin allows you to perform AES 256 encryption and decryption on the plain text.\nIt's a cross-platform plugin which supports both Android and iOS.\nThe encryption and decryption are performed on the device native layer so that the performance is much faster.\n",
"usage": "\n```typescript\nimport { AES256 } from '@ionic-native/aes-256/ngx';\n\nprivate secureKey: string;\nprivate secureIV: string;\n\nconstructor(private aes256: AES256) {\n this.generateSecureKeyAndIV(); // To generate the random secureKey and secureIV\n}\n\n...\n\nasync generateSecureKeyAndIV() {\n this.secureKey = await this.aes256.generateSecureKey('random password 12345'); // Returns a 32 bytes string\n this.secureIV = await this.aes256.generateSecureIV('random password 12345'); // Returns a 16 bytes string\n}\n\nthis.aes256.encrypt(this.secureKey, this.secureIV, 'testdata')\n .then(res => console.log('Encrypted Data: ',res))\n .catch((error: any) => console.error(error));\n\nthis.aes256.decrypt(this.secureKey, this.secureIV, 'encryptedData')\n .then(res => console.log('Decrypted Data : ',res))\n .catch((error: any) => console.error(error));\n\n\n* this.aes256.generateSecureKey('random password 12345')\n .then(res => console.log('Secure Key : ',res))\n .catch((error: any) => console.error(error));\n\n\n* this.aes256.generateSecureIV('random password 12345')\n .then(res => console.log('Secure IV : ',res))\n .catch((error: any) => console.error(error));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/Ideas2IT/cordova-aes256",
"cordovaPlugin": {
"name": "cordova-plugin-aes256-encryption"
}
},
{
"packageName": "@ionic-native/alipay",
"displayName": "Alipay",
"description": "\nThis plugin facilitates the usage of Alipay 支付宝 in an Ionic apps with the integrated AlipaySDK dated on 20180601.\n\nRequires Cordova plugin: `cordova-plugin-gubnoi-alipay`. For more info, please see https://github.com/jing-zhou/cordova-plugin-alipay .\n",
"usage": "\n```typescript\nimport { Alipay } from '@ionic-native/alipay/ngx';\n\nconstructor(private alipay: Alipay) {\n\n//alipayOrder is a string that has been generated and signed by the server side.\nthis.alipay.pay(alipayOrder)\n .then(result => {\n console.log(result); // Success\n })\n .catch(error => {\n console.log(error); // Failed\n });\n\n}\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/jing-zhou/cordova-plugin-alipay",
"cordovaPlugin": {
"name": "cordova-plugin-gubnoi-alipay"
}
},
{
"packageName": "@ionic-native/analytics-firebase",
"displayName": "Analytics Firebase",
"description": "\nGoogle Analytics Firebase plugin for Ionic Native apps.\n",
"usage": "\n```typescript\nimport { AnalyticsFirebase } from '@ionic-native/analytics-firebase';\n\n\nconstructor(private analyticsFirebase: AnalyticsFirebase) { }\n\n// Track an event with default events and params\nconst eventParams = {};\neventParams[this.analyticsFirebase.DEFAULT_PARAMS.LEVEL] = 29;\nthis.analyticsFirebase.logEvent(this.analyticsFirebase.DEFAULT_EVENTS.LEVEL_UP, eventParams)\n .then(() => console.log('Event successfully tracked'))\n .catch(err => console.log('Error tracking event:', err));\n\n// Track an event with custom events and params\nconst eventParams = {};\neventParams['my-prop'] = 29;\nthis.analyticsFirebase.logEvent('my-event', eventParams)\n .then(() => console.log('Event successfully tracked'))\n .catch(err => console.log('Error tracking event:', err));\n\n\n// Reset analytics data\nthis.analyticsFirebase.resetAnalyticsData()\n .then(() => console.log('Analytics data have been reset'))\n .catch(err => console.log('Error resetting analytics data:', err));\n\n\n// Track a screen view\nthis.analyticsFirebase.setCurrentScreen('Home')\n .then(() => console.log('View successfully tracked'))\n .catch(err => console.log('Error tracking view:', err));\n\n\n// Set user id\nthis.analyticsFirebase.setUserId('USER-ID')\n .then(() => console.log('User id successfully set'))\n .catch(err => console.log('Error setting user id:', err));\n\n\n// Set user property from default properties\nthis.analyticsFirebase.setUserProperty('KEY', 'VALUE')\n .then(() => console.log('User property successfully set'))\n .catch(err => console.log('Error setting user property:', err));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/appfeel/analytics-google",
"cordovaPlugin": {
"name": "cordova-plugin-analytics"
}
},
{
"packageName": "@ionic-native/android-exoplayer",
"displayName": "Android ExoPlayer",
"description": "\nCordova media player plugin using Google's ExoPlayer framework.\n\nhttps://github.com/google/ExoPlayer\n",
"usage": "\n```typescript\nimport { AndroidExoPlayer } from '@ionic-native/android-exoplayer/ngx';\n\nconstructor(private androidExoPlayer: AndroidExoPlayer) { }\n\n...\n\nthis.androidExoPlayer.show({url: 'http://www.youtube.com/api/manifest/dash/id/bf5bb2419360daf1/source/youtube'});\n\n```\n",
"platforms": [
"Android"
],
"repo": "https://github.com/frontyard/cordova-plugin-exoplayer",
"cordovaPlugin": {
"name": "cordova-plugin-exoplayer"
}
},
{
"packageName": "@ionic-native/android-fingerprint-auth",
"displayName": "Android Fingerprint Auth",
"description": "\nThis plugin will open a native dialog fragment prompting the user to authenticate using their fingerprint. If the device has a secure lockscreen (pattern, PIN, or password), the user may opt to authenticate using that method as a backup.",
"usage": "\n```typescript\nimport { AndroidFingerprintAuth } from '@ionic-native/android-fingerprint-auth/ngx';\n\nconstructor(private androidFingerprintAuth: AndroidFingerprintAuth) { }\n\n...\n\n\nthis.androidFingerprintAuth.isAvailable()\n .then((result)=> {\n if(result.isAvailable){\n // it is available\n\n this.androidFingerprintAuth.encrypt({ clientId: 'myAppName', username: 'myUsername', password: 'myPassword' })\n .then(result => {\n if (result.withFingerprint) {\n console.log('Successfully encrypted credentials.');\n console.log('Encrypted credentials: ' + result.token);\n } else if (result.withBackup) {\n console.log('Successfully authenticated with backup password!');\n } else console.log('Didn\\'t authenticate!');\n })\n .catch(error => {\n if (error === this.androidFingerprintAuth.ERRORS.FINGERPRINT_CANCELLED) {\n console.log('Fingerprint authentication cancelled');\n } else console.error(error)\n });\n\n } else {\n // fingerprint auth isn't available\n }\n })\n .catch(error => console.error(error));\n```",
"platforms": [
"Android"
],
"repo": "https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth",
"cordovaPlugin": {
"name": "cordova-plugin-android-fingerprint-auth"
}
},
{
"packageName": "@ionic-native/android-full-screen",
"displayName": "Android Full Screen",
"description": "\nThis plugin enables developers to offer users a true full screen experience in their Cordova and PhoneGap apps for Android.\nUsing Android 4.0+, you can use true full screen in \"lean mode\", the way you see in apps like YouTube, expanding the app right to the edges of the screen, hiding the status and navigation bars until the user next interacts. This is ideally suited to video or cut-scene content.\nIn Android 4.4+, however, you can now enter true full screen, fully interactive immersive mode. In this mode, your app will remain in true full screen until you choose otherwise; users can swipe down from the top of the screen to temporarily display the system UI.",
"usage": "\n```typescript\nimport { AndroidFullScreen } from '@ionic-native/android-full-screen/ngx';\n\nconstructor(private androidFullScreen: AndroidFullScreen) { }\n\n...\n\nthis.androidFullScreen.isImmersiveModeSupported()\n .then(() => console.log('Immersive mode supported'))\n .catch(err => console.log(err));\n\n```\n",
"platforms": [
"Android"
],
"repo": "https://github.com/mesmotronic/cordova-plugin-fullscreen",
"cordovaPlugin": {
"name": "cordova-plugin-fullscreen"
}
},
{
"packageName": "@ionic-native/android-permissions",
"displayName": "Android Permissions",
"description": "\nThis plugin is designed to support Android new permissions checking mechanism.\n\nYou can find all permissions here: https://developer.android.com/reference/android/Manifest.permission.html\n",
"usage": "\n```\nimport { AndroidPermissions } from '@ionic-native/android-permissions/ngx';\n\n\nconstructor(private androidPermissions: AndroidPermissions) { }\n\n...\n\nthis.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA)\n);\n\nthis.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.CAMERA, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n\n```\n\nAndroid 26 and above: due to Android 26's changes to permissions handling (permissions are requested at time of use rather than at runtime,) if your app does not include any functions (eg. other Ionic Native plugins) that utilize a particular permission, then `requestPermission()` and `requestPermissions()` will resolve immediately with no prompt shown to the user. Thus, you must include a function utilizing the feature you would like to use before requesting permission for it.\n",
"platforms": [
"Android"
],
"repo": "https://github.com/NeoLSN/cordova-plugin-android-permissions",
"cordovaPlugin": {
"name": "cordova-plugin-android-permissions"
}
},
{
"packageName": "@ionic-native/app-availability",
"displayName": "App Availability",
"description": "\nThis plugin allows you to check if an app is installed on the user's device. It requires an URI Scheme (e.g. twitter://) on iOS or a Package Name (e.g com.twitter.android) on Android.\n\nRequires Cordova plugin: cordova-plugin-appavailability. For more info, please see the [AppAvailability plugin docs](https://github.com/ohh2ahh/AppAvailability).\n",
"usage": "\n```typescript\nimport { AppAvailability } from '@ionic-native/app-availability/ngx';\nimport { Platform } from 'ionic-angular';\n\nconstructor(private appAvailability: AppAvailability, private platform: Platform) { }\n\n...\n\nlet app;\n\nif (this.platform.is('ios')) {\n app = 'twitter://';\n} else if (this.platform.is('android')) {\n app = 'com.twitter.android';\n}\n\nthis.appAvailability.check(app)\n .then(\n (yes: boolean) => console.log(app + ' is available'),\n (no: boolean) => console.log(app + ' is NOT available')\n );\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/ohh2ahh/AppAvailability",
"cordovaPlugin": {
"name": "cordova-plugin-appavailability"
}
},
{
"packageName": "@ionic-native/app-center-analytics",
"displayName": "App Center Analytics",
"description": "\nApp Center Analytics helps you understand user behavior and customer engagement to improve your app.\nThe SDK automatically captures session count and device properties like model, OS version, etc.\nYou can define your own custom events to measure things that matter to you.\nAll the information captured is available in the App Center portal for you to analyze the data.\n\nFor more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/analytics/cordova\n",
"usage": "\n```typescript\nimport { AppCenterAnalytics } from '@ionic-native/app-center-analytics/ngx';\n\n\nconstructor(private appCenterAnalytics: AppCenterAnalytics) { }\n\n...\n\nthis.appCenterAnalytics.setEnabled(true).then(() => {\n this.appCenterAnalytics.trackEvent('My Event', { TEST: 'HELLO_WORLD' }).then(() => {\n console.log('Custom event tracked');\n });\n});\n\n```",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-analytics",
"cordovaPlugin": {
"name": "cordova-plugin-appcenter-analytics"
}
},
{
"packageName": "@ionic-native/app-center-crashes",
"displayName": "App Center Crashes",
"description": "\nApp Center Analytics helps you understand user behavior and customer engagement to improve your app.\nThe SDK automatically captures session count and device properties like model, OS version, etc.\nYou can define your own custom events to measure things that matter to you.\nAll the information captured is available in the App Center portal for you to analyze the data.\n\nFor more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/crashes/cordova\n",
"usage": "\n```typescript\nimport { AppCenterCrashes } from '@ionic-native/app-center-crashes/ngx';\n\n\nconstructor(private AppCenterCrashes: AppCenterCrashes) { }\n\n...\n\nthis.AppCenterCrashes.setEnabled(true).then(() => {\n this.AppCenterCrashes.lastSessionCrashReport().then(report => {\n console.log('Crash report', report);\n });\n});\n\n```",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-crashes",
"cordovaPlugin": {
"name": "cordova-plugin-appcenter-crashes"
}
},
{
"packageName": "@ionic-native/app-center-push",
"displayName": "App Center Push",
"description": "\n\nFor more info, please see https://docs.microsoft.com/en-us/appcenter/sdk/push/cordova\n",
"usage": "\n```typescript\nimport { AppCenterPush } from '@ionic-native/app-center-push/ngx';\n\n\nconstructor(private appCenterPush: AppCenterPush) { }\n\n...\n\nthis.appCenterPush.setEnabled(true).then(() => {\n this.appCenterPush.addEventListener('My Event').subscribe(pushNotification => {\n console.log('Recived push notification', pushNotification);\n });\n});\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/Microsoft/appcenter-sdk-cordova/tree/master/cordova-plugin-appcenter-push",
"cordovaPlugin": {
"name": "cordova-plugin-appcenter-push"
}
},
{
"packageName": "@ionic-native/app-launcher",
"displayName": "App Launcher",
"description": "\nSimple Cordova plugin to see if other apps are installed and launch them.\n",
"usage": "\n```typescript\nimport { AppLauncher, AppLauncherOptions } from '@ionic-native/app-launcher/ngx';\nimport { Platform } from '@ionic/angular';\n\nconstructor(private appLauncher: AppLauncher, private platform: Platform) { }\n\n...\n\nconst options: AppLauncherOptions = {\n}\n\nif(this.platform.is('ios')) {\n options.uri = 'fb://'\n} else {\n options.packageName = 'com.facebook.katana'\n}\n\nthis.appLauncher.canLaunch(options)\n .then((canLaunch: boolean) => console.log('Facebook is available'))\n .catch((error: any) => console.error('Facebook is not available'));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/nchutchind/cordova-plugin-app-launcher",
"cordovaPlugin": {
"name": "cordova-plugin-app-launcher"
}
},
{
"packageName": "@ionic-native/app-minimize",
"displayName": "App Minimize",
"description": "\nAppMinimize is a plugin to minimize the application on android devices\n",
"usage": "\n```typescript\nimport { Platfrom } from '@ionic/angular';\nimport { AppMinimize } from '@ionic-native/app-minimize/ngx';\n\n\nconstructor(private platform: Platform, private appMinimize: AppMinimize) { }\n\n...\n\nthis.platform.registerBackButtonAction(() => {\n this.appMinimize.minimize();\n});\n\n```\n",
"platforms": [
"Android"
],
"repo": "https://github.com/tomloprod/cordova-plugin-appminimize",
"cordovaPlugin": {
"name": "cordova-plugin-appminimize"
}
},
{
"packageName": "@ionic-native/app-preferences",
"displayName": "App Preferences",
"description": "\nThis plugin allows you to read and write app preferences\n",
"usage": "\n```typescript\nimport { AppPreferences } from '@ionic-native/app-preferences/ngx';\n\nconstructor(private appPreferences: AppPreferences) { }\n\n...\n\nthis.appPreferences.fetch('key').then((res) => { console.log(res); });\n\n```\n\n",
"platforms": [
"Android",
"BlackBerry 10",
"Browser",
"iOS",
"macOS",
"Windows 8",
"Windows Phone"
],
"repo": "https://github.com/apla/me.apla.cordova.app-preferences",
"cordovaPlugin": {
"name": "cordova-plugin-app-preferences"
}
},
{
"packageName": "@ionic-native/app-rate",
"displayName": "App Rate",
"description": "\nThe AppRate plugin makes it easy to prompt the user to rate your app, either now, later, or never.\n\nRequires Cordova plugin: cordova-plugin-apprate. For more info, please see the [AppRate plugin docs](https://github.com/pushandplay/cordova-plugin-apprate).\n",
"usage": "\n```typescript\nimport { AppRate } from '@ionic-native/app-rate/ngx';\n\nconstructor(private appRate: AppRate) { }\n\n...\n// set certain preferences\nthis.appRate.preferences.storeAppURL = {\n ios: '<app_id>',\n android: 'market://details?id=<package_name>',\n windows: 'ms-windows-store://review/?ProductId=<store_id>'\n}\n\nthis.appRate.promptForRating(true);\n\n// or, override the whole preferences object\nthis.appRate.preferences = {\n usesUntilPrompt: 3,\n storeAppURL: {\n ios: '<app_id>',\n android: 'market://details?id=<package_name>',\n windows: 'ms-windows-store://review/?ProductId=<store_id>'\n }\n}\n\nthis.appRate.promptForRating(false);\n```\n",
"platforms": [
"Android",
"BlackBerry 10",
"iOS",
"Windows"
],
"repo": "https://github.com/pushandplay/cordova-plugin-apprate",
"cordovaPlugin": {
"name": "cordova-plugin-apprate"
}
},
{
"packageName": "@ionic-native/app-update",
"displayName": "App Update",
"description": "\nThis plugin does self-update for android\n",
"usage": "\n\nYou should first host an XML file on your server with the following data in it:\n```xml\n<update>\n <version>302048</version>\n <name>APK Name</name>\n <url>https://your-remote-api.com/YourApp.apk</url>\n</update>\n```\n\nThen use the following code:\n\n```typescript\nimport { AppUpdate } from '@ionic-native/app-update/ngx';\n\nconstructor(private appUpdate: AppUpdate) {\n\n const updateUrl = 'https://your-remote-api.com/update.xml';\n this.appUpdate.checkAppUpdate(updateUrl).then(() => { console.log('Update available') });\n\n}\n```\n\nThe plugin will compare the app version and update it automatically if the API has a newer version to install.",
"platforms": [
"Android"
],
"repo": "https://github.com/vaenow/cordova-plugin-app-update",
"cordovaPlugin": {
"name": "cordova-plugin-app-update"
}
},
{
"packageName": "@ionic-native/app-version",
"displayName": "App Version",
"description": "\nReads the version of your app from the target build settings.\n\nRequires Cordova plugin: `cordova-plugin-app-version`. For more info, please see the [Cordova App Version docs](https://github.com/whiteoctober/cordova-plugin-app-version).\n",
"usage": "\n```typescript\nimport { AppVersion } from '@ionic-native/app-version/ngx';\n\nconstructor(private appVersion: AppVersion) { }\n\n...\n\n\nthis.appVersion.getAppName();\nthis.appVersion.getPackageName();\nthis.appVersion.getVersionCode();\nthis.appVersion.getVersionNumber();\n\n```\n",
"platforms": [
"Android",
"iOS",
"Windows"
],
"repo": "https://github.com/whiteoctober/cordova-plugin-app-version",
"cordovaPlugin": {
"name": "cordova-plugin-app-version"
}
},
{
"packageName": "@ionic-native/apple-pay",
"displayName": "Apple Pay",
"description": "\nA dependency free Cordova plugin to provide Apple Pay functionality.\n",
"usage": "\n```typescript\nimport { ApplePay } from '@ionic-native/apple-pay/ngx';\n\n\nconstructor(private applePay: ApplePay) { }\n\n...\nasync applePay() {\n // This block is optional -- only if you need to update order items/shipping\n // methods in response to shipping method selections\n this.applePay.startListeningForShippingContactSelection()\n .subscribe(async selection => {\n try {\n await this.applePay.updateItemsAndShippingMethods({\n items: getFromSelection(selection),\n shippingMethods: getFromSelection(selection),\n });\n }\n catch {\n // handle update items error\n }\n });\n\n try {\n const applePayTransaction = await this.applePay.makePaymentRequest({\n items,\n shippingMethods,\n merchantIdentifier,\n currencyCode,\n countryCode,\n billingAddressRequirement: ['name', 'email', 'phone'],\n shippingAddressRequirement: 'none',\n shippingType: 'shipping'\n });\n\n const transactionStatus = await completeTransactionWithMerchant(applePayTransaction);\n await this.applePay.completeLastTransaction(transactionStatus);\n } catch {\n // handle payment request error\n // Can also handle stop complete transaction but these should normally not occur\n }\n\n // only if you started listening before\n await this.applePay.stopListeningForShippingContactSelection();\n}\n```\n",
"platforms": [
"iOS"
],
"repo": "https://github.com/samkelleher/cordova-plugin-applepay",
"cordovaPlugin": {
"name": "cordova-plugin-applepay"
}
},
{
"packageName": "@ionic-native/apple-wallet",
"displayName": "Apple Wallet",
"description": "\nA Cordova plugin that enables users from Add Payment Cards to their Apple Wallet.\n",
"usage": "\n```typescript\nimport { AppleWallet } from '@ionic-native/apple-wallet/ngx';\n\n\nconstructor(private appleWallet: AppleWallet) { }\n\n\n...\n\n\n// Simple call to determine if the current device supports Apple Pay and has a supported card installed.\nthis.appleWallet.isAvailable()\n .then((res: boolean) => {\n // Expect res to be boolean\n })\n .catch((err) => {\n // Catch {{err}} here\n });\n\n\n...\n\n\n// Simple call to check existence and ellibagility to add a card\nthis.appleWallet.isCardExistInWalletOrWatch(data: CardPrimarySuffixData)\n .then((res: EligibilityData) => {\n // object contains boolean values that ensure that card is already exists in wallet or paired-watch\n })\n .catch((err) => {\n // Catch {{err}} here\n });\n\n\n...\n\n\n// Simple call to check out if there is any paired Watches so that you can toggle visibility of 'Add to Watch' button\nthis.appleWallet.isPairedWatchExist()\n .then((res: WatchExistData) => {\n // object contains boolean value that ensure that there is already a paired Watch\n })\n .catch((err) => {\n // Catch {{err}} here\n });\n\n\n...\n\n\n// Simple call with the configuration data needed to instantiate a new PKAddPaymentPassViewController object.\n// This method provides the data needed to create a request to add your payment pass (credit/debit card). After a successful callback, pass the certificate chain to your issuer server-side using our callback delegate method `AppleWallet.completeAddPaymentPass`. The issuer server-side should returns an encrypted JSON payload containing the encrypted card data, which is required to be get the final response\n\nthis.appleWallet.startAddPaymentPass(data: cardData)\n .then((res: SignatureCertificatesData) => {\n // User proceed and successfully asked to add card to his wallet\n // Use the callback response JSON payload to complete addition process\n })\n .catch((err) => {\n // Catch {{err}} here\n });\n\n\n...\n\n\nthis.appleWallet.completeAddPaymentPass(data: encryptedCardData)\n .then((res: string) => {\n // Expect res to be string either 'success' or 'error'\n })\n .catch((err) => {\n // Catch {{err}} here\n // Error and can not add the card, or something wrong happend\n // PKAddPaymentPassViewController will be dismissed\n });\n\n```",
"platforms": [
"iOS"
],
"repo": "https://github.com/tomavic/cordova-apple-wallet",
"cordovaPlugin": {
"name": "cordova-apple-wallet"
}
},
{
"packageName": "@ionic-native/appodeal",
"displayName": "Appodeal",
"description": "\nPlugin to serve ads through native Appodeal SDKs\n",
"usage": "\n```typescript\nimport { Appodeal } from '@ionic-native/appodeal/ngx';\n\nconstructor(private appodeal: Appodeal) {\n\n const appKey = '<your app key>';\n appodeal.initialize(appKey, appodeal.AD_TYPES.REWARDED_VIDEO);\n appodeal.show(appodeal.AD_TYPES.REWARDED_VIDEO);\n\n}\n```\n",
"platforms": [
"iOS",
"Android"
],
"repo": "https://github.com/appodeal/appodeal-cordova-plugin",
"cordovaPlugin": {
"name": "https://github.com/appodeal/appodeal-cordova-plugin.git"
}
},
{
"packageName": "@ionic-native/appsflyer",
"displayName": "Appsflyer",
"description": "\nAppsflyer Cordova SDK support for Attribution\n",
"usage": "\n```typescript\nimport { Appsflyer } from '@ionic-native/appsflyer/ngx';\n\n\nconstructor(private appsflyer: Appsflyer) { }\n\n...\n\n\nthis.appsflyer.initSdk(options);\n\n```\n",
"platforms": [
"iOS",
"Android"
],
"repo": "https://github.com/AppsFlyerSDK/cordova-plugin-appsflyer-sdk",
"cordovaPlugin": {
"name": "cordova-plugin-appsflyer-sdk"
}
},
{
"packageName": "@ionic-native/audio-management",
"displayName": "Audio Management",
"description": "\nA Cordova plugin to manage volume of audio streams for: ring, music, notification and system. Possible\nringer values for those streams are: silent, vibrate and normal.\n",
"usage": "\n```typescript\nimport { AudioManagement } from '@ionic-native/audio-management/ngx';\n\n\nconstructor(public audioman: AudioManagement) { }\n\n...\n\nsetAudioMode() {\n this.audioman.setAudioMode(AudioManagement.AudioMode.NORMAL)\n .then(() => {\n console.log('Device audio mode is now NORMAL');\n })\n .catch((reason) => {\n console.log(reason);\n });\n}\n\ngetAudioMode() {\n this.audioman.getAudioMode()\n .then((value: AudioManagement.AudioModeReturn) => {\n console.log('Device audio mode is ' + value.label + ' (' + value.audioMode + ')');\n })\n .catch((reason) => {\n console.log(reason);\n });\n}\n\n```",
"platforms": [
"Android"
],
"repo": "https://github.com/clovelCed/cordova-plugin-audiomanagement",
"cordovaPlugin": {
"name": "clovelced-plugin-audiomanagement"
}
},
{
"packageName": "@ionic-native/autostart",
"displayName": "Autostart",
"description": "\nThis plugin automatically starts your Android app after every boot or auto-update.\nYou can enable or disable the autostart function in your app.\n",
"usage": "\n```typescript\nimport { Autostart } from '@ionic-native/autostart/ngx';\n\n\nconstructor(private autostart: Autostart) { }\n\n...\n\nthis.autostart.enable();\n\nthis.autostart.disable();\n\n```\n",
"platforms": [
"Android"
],
"repo": "https://github.com/ToniKorin/cordova-plugin-autostart",
"cordovaPlugin": {
"name": "cordova-plugin-autostart"
}
},
{
"packageName": "@ionic-native/background-fetch",
"displayName": "Background Fetch",
"description": "\niOS Background Fetch Implementation. See: https://developer.apple.com/reference/uikit/uiapplication#1657399\niOS Background Fetch is basically an API which wakes up your app about every 15 minutes (during the user's prime-time hours) and provides your app exactly 30s of background running-time. This plugin will execute your provided callbackFn whenever a background-fetch event occurs. There is no way to increase the rate which a fetch-event occurs and this plugin sets the rate to the most frequent possible value of UIApplicationBackgroundFetchIntervalMinimum -- iOS determines the rate automatically based upon device usage and time-of-day (ie: fetch-rate is about ~15min during prime-time hours; less frequently when the user is presumed to be sleeping, at 3am for example).\nFor more detail, please see https://github.com/transistorsoft/cordova-plugin-background-fetch\n",
"usage": "\n\n```typescript\nimport { BackgroundFetch, BackgroundFetchConfig } from '@ionic-native/background-fetch/ngx';\n\n\nconstructor(private backgroundFetch: BackgroundFetch) {\n\n const config: BackgroundFetchConfig = {\n stopOnTerminate: false, // Set true to cease background-fetch from operating after user \"closes\" the app. Defaults to true.\n }\n\n backgroundFetch.configure(config)\n .then(() => {\n console.log('Background Fetch initialized');\n\n this.backgroundFetch.finish();\n\n })\n .catch(e => console.log('Error initializing background fetch', e));\n\n // Start the background-fetch API. Your callbackFn provided to #configure will be executed each time a background-fetch event occurs. NOTE the #configure method automatically calls #start. You do not have to call this method after you #configure the plugin\n backgroundFetch.start();\n\n // Stop the background-fetch API from firing fetch events. Your callbackFn provided to #configure will no longer be executed.\n backgroundFetch.stop();\n\n\n}\n\n```",
"platforms": [
"iOS"
],
"repo": "https://github.com/transistorsoft/cordova-plugin-background-fetch",
"cordovaPlugin": {
"name": "cordova-plugin-background-fetch"
}
},
{
"packageName": "@ionic-native/background-geolocation",
"displayName": "Background Geolocation",
"description": "\nThis plugin provides foreground and background geolocation with battery-saving \"circular region monitoring\" and \"stop detection\". For\nmore detail, please see https://github.com/mauron85/cordova-plugin-background-geolocation\n",
"usage": "\n\nBackgroundGeolocation must be called within app.ts and or before Geolocation. Otherwise the platform will not ask you for background tracking permission.\n\n```typescript\nimport { BackgroundGeolocation, BackgroundGeolocationConfig, BackgroundGeolocationResponse } from '@ionic-native/background-geolocation';\n\nconstructor(private backgroundGeolocation: BackgroundGeolocation) { }\n\n...\n\nconst config: BackgroundGeolocationConfig = {\n desiredAccuracy: 10,\n stationaryRadius: 20,\n distanceFilter: 30,\n debug: true, // enable this hear sounds for background-geolocation life-cycle.\n stopOnTerminate: false, // enable this to clear background location settings when the app terminates\n };\n\nthis.backgroundGeolocation.configure(config)\n .then(() => {\n\n this.backgroundGeolocation.on('location').subscribe((location: BackgroundGeolocationResponse) => {\n console.log(location);\n\n // IMPORTANT: You must execute the finish method here to inform the native plugin that you're finished,\n // and the background-task may be completed. You must do this regardless if your operations are successful or not.\n // IF YOU DON'T, ios will CRASH YOUR APP for spending too much time in the background.\n this.backgroundGeolocation.finish(); // FOR IOS ONLY\n });\n\n });\n\n// start recording location\nthis.backgroundGeolocation.start();\n\n// If you wish to turn OFF background-tracking, call the #stop method.\nthis.backgroundGeolocation.stop();\n\n```",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/mauron85/cordova-plugin-background-geolocation",
"cordovaPlugin": {
"name": "cordova-plugin-mauron85-background-geolocation@alpha"
}
},
{
"packageName": "@ionic-native/background-mode",
"displayName": "Background Mode",
"description": "\nCordova plugin to prevent the app from going to sleep while in background.\nRequires Cordova plugin: cordova-plugin-background-mode. For more info about plugin, visit: https://github.com/katzer/cordova-plugin-background-mode",
"usage": "\n```typescript\nimport { BackgroundMode } from '@ionic-native/background-mode/ngx';\n\nconstructor(private backgroundMode: BackgroundMode) { }\n\n...\n\nthis.backgroundMode.enable();\n```\n",
"platforms": [
"AmazonFire OS",
"Android",
"Browser",
"iOS",
"Windows"
],
"repo": "https://github.com/katzer/cordova-plugin-background-mode",
"cordovaPlugin": {
"name": "cordova-plugin-background-mode"
}
},
{
"packageName": "@ionic-native/backlight",
"displayName": "Backlight",
"description": "\nThis plugin adds turning on/off the device backlight.\n",
"usage": "\n```typescript\nimport { Backlight } from '@ionic-native/backlight/ngx';\n\nconstructor(private backlight: Backlight) { }\n\n...\n\n// Turn backlight on\nthis.backlight.on().then(() => console.log('backlight on'));\n\n// Turn backlight off\nthis.backlight.off().then(() => console.log('backlight off'));\n\n```\n",
"platforms": [
"Android"
],
"repo": "https://github.com/mebibou/cordova-plugin-backlight",
"cordovaPlugin": {
"name": "cordova-plugin-backlight"
}
},
{
"packageName": "@ionic-native/badge",
"displayName": "Badge",
"description": "\nThe essential purpose of badge numbers is to enable an application to inform its users that it has something for them — for example, unread messages — when the application isn’t running in the foreground.\n\nRequires Cordova plugin: cordova-plugin-badge. For more info, please see the [Badge plugin docs](https://github.com/katzer/cordova-plugin-badge).\n",
"usage": "\n```typescript\nimport { Badge } from '@ionic-native/badge/ngx';\n\nconstructor(private badge: Badge) { }\n\n...\n\nthis.badge.set(10);\nthis.badge.increase(1);\nthis.badge.clear();\n```\n",
"platforms": [
"Android",
"Browser",
"iOS",
"Windows"
],
"repo": "https://github.com/katzer/cordova-plugin-badge",
"cordovaPlugin": {
"name": "cordova-plugin-badge"
}
},
{
"packageName": "@ionic-native/baidu-push",
"displayName": "Baidu Push",
"description": "\nThis plugin faciliates the use of Baidu Push notifications.\n",
"usage": "\n```typescript\nimport { BaiduPush } from '@ionic-native/baidu-push/ngx';\n\n\nconstructor(private baiduPush: BaiduPush) { }\n\n...\n\nthis.baiduPush.startWork('xxxxxx')\n .then((res: any) => console.log(res))\n .catch((error: any) => console.error(error));\n\n```",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/Ti-webdev/cordova-plugin-push-baidu.git",
"cordovaPlugin": {
"name": "cordova-plugin-push-baidu"
}
},
{
"packageName": "@ionic-native/barcode-scanner",
"displayName": "Barcode Scanner",
"description": "\nThe Barcode Scanner Plugin opens a camera view and automatically scans a barcode, returning the data back to you.\n\nRequires Cordova plugin: `phonegap-plugin-barcodescanner`. For more info, please see the [BarcodeScanner plugin docs](https://github.com/phonegap/phonegap-plugin-barcodescanner).\n",
"usage": "\n```typescript\nimport { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';\n\nconstructor(private barcodeScanner: BarcodeScanner) { }\n\n...\n\n\nthis.barcodeScanner.scan().then(barcodeData => {\n console.log('Barcode data', barcodeData);\n}).catch(err => {\n\tconsole.log('Error', err);\n});\n```",
"platforms": [
"Android",
"BlackBerry 10",
"Browser",
"iOS",
"Windows"
],
"repo": "https://github.com/phonegap/phonegap-plugin-barcodescanner",
"cordovaPlugin": {
"name": "phonegap-plugin-barcodescanner"
}
},
{
"packageName": "@ionic-native/base64-to-gallery",
"displayName": "Base64 To Gallery",
"description": "This plugin allows you to save base64 data as a png image into the device",
"usage": "\n```typescript\nimport { Base64ToGallery } from '@ionic-native/base64-to-gallery/ngx';\n\nconstructor(private base64ToGallery: Base64ToGallery) { }\n\n\n...\n\n\nthis.base64ToGallery.base64ToGallery(base64Data, { prefix: '_img' }).then(\n res => console.log('Saved image to gallery ', res),\n err => console.log('Error saving image to gallery ', err)\n);\n```",
"platforms": [
"Android",
"iOS",
"Windows Phone 8"
],
"repo": "https://github.com/Nexxa/cordova-base64-to-gallery",
"cordovaPlugin": {
"name": "cordova-base64-to-gallery"
}
},
{
"packageName": "@ionic-native/base64",
"displayName": "Base64",
"description": "\nThis Plugin is used to encode base64 of any file, it uses js code for iOS, but in case of android it uses native code to handle android versions lower than v.3\n",
"usage": "\n```typescript\nimport { Base64 } from '@ionic-native/base64/ngx';\n\nconstructor(private base64: Base64) { }\n\n...\n\nlet filePath: string = 'file:///...';\nthis.base64.encodeFile(filePath).then((base64File: string) => {\n console.log(base64File);\n}, (err) => {\n console.log(err);\n});\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/hazemhagrass/phonegap-base64",
"cordovaPlugin": {
"name": "com-badrit-base64"
}
},
{
"packageName": "@ionic-native/battery-status",
"displayName": "Battery Status",
"description": "\nRequires Cordova plugin: cordova-plugin-batterystatus. For more info, please see the [BatteryStatus plugin docs](https://github.com/apache/cordova-plugin-battery-status).\n",
"usage": "\n```typescript\nimport { BatteryStatus } from '@ionic-native/battery-status/ngx';\n\nconstructor(private batteryStatus: BatteryStatus) { }\n\n...\n\n\n// watch change in battery status\nconst subscription = this.batteryStatus.onChange().subscribe(status => {\n console.log(status.level, status.isPlugged);\n});\n\n// stop watch\nsubscription.unsubscribe();\n\n```",
"platforms": [
"iOS",
"Android",
"Windows",
"Browser"
],
"repo": "https://github.com/apache/cordova-plugin-battery-status",
"cordovaPlugin": {
"name": "cordova-plugin-battery-status"
}
},
{
"packageName": "@ionic-native/ble",
"displayName": "BLE",
"description": "\nThis plugin enables communication between a phone and Bluetooth Low Energy (BLE) peripherals.\n\nThe plugin provides a simple JavaScript API for iOS and Android.\n\n- Scan for peripherals\n- Connect to a peripheral\n- Read the value of a characteristic\n- Write new value to a characteristic\n- Get notified when characteristic's value changes\n\nAdvertising information is returned when scanning for peripherals. Service, characteristic, and property info is returned when connecting to a peripheral. All access is via service and characteristic UUIDs. The plugin manages handles internally.\n\nSimultaneous connections to multiple peripherals are supported.\n",
"usage": "\n\n```typescript\n\nimport { BLE } from '@ionic-native/ble/ngx';\n\nconstructor(private ble: BLE) { }\n\n```\n\n## Peripheral Data\n\nPeripheral Data is passed to the success callback when scanning and connecting. Limited data is passed when scanning.\n\n```typescript\n {\n 'name': 'Battery Demo',\n 'id': '20:FF:D0:FF:D1:C0',\n 'advertising': [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],\n 'rssi': -55\n }\n```\nAfter connecting, the peripheral object also includes service, characteristic and descriptor information.\n\n```typescript\n {\n 'name': 'Battery Demo',\n 'id': '20:FF:D0:FF:D1:C0',\n 'advertising': [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],\n 'rssi': -55,\n 'services': [\n '1800',\n '1801',\n '180f'\n ],\n 'characteristics': [\n {\n 'service': '1800',\n 'characteristic': '2a00',\n 'properties': [\n 'Read'\n ]\n },\n {\n 'service': '1800',\n 'characteristic': '2a01',\n 'properties': [\n 'Read'\n ]\n },\n {\n 'service': '1801',\n 'characteristic': '2a05',\n 'properties': [\n 'Read'\n ]\n },\n {\n 'service': '180f',\n 'characteristic': '2a19',\n 'properties': [\n 'Read'\n ],\n 'descriptors': [\n {\n 'uuid': '2901'\n },\n {\n 'uuid': '2904'\n }\n ]\n }\n ]\n }\n```\n\n## Advertising Data\nBluetooth advertising data is returned in when scanning for devices. The format varies depending on your platform. On Android advertising data will be the raw advertising bytes. iOS does not allow access to raw advertising data, so a dictionary of data is returned.\n\nThe advertising information for both Android and iOS appears to be a combination of advertising data and scan response data.\n\n### Android\n\n```typescript\n {\n 'name': 'demo',\n 'id': '00:1A:7D:DA:71:13',\n 'advertising': ArrayBuffer,\n 'rssi': -37\n }\n```\n\nConvert the advertising info to a Uint8Array for processing. `var adData = new Uint8Array(peripheral.advertising)`\n\n### iOS\n\nNote that iOS uses the string value of the constants for the [Advertisement Data Retrieval Keys](https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBCentralManagerDelegate_Protocol/index.html#//apple_ref/doc/constant_group/Advertisement_Data_Retrieval_Keys). This will likely change in the future.\n\n```typescript\n {\n 'name': 'demo',\n 'id': 'D8479A4F-7517-BCD3-91B5-3302B2F81802',\n 'advertising': {\n 'kCBAdvDataChannel': 37,\n 'kCBAdvDataServiceData': {\n 'FED8': {\n 'byteLength': 7 // data not shown\n }\n },\n 'kCBAdvDataLocalName': 'demo',\n 'kCBAdvDataServiceUUIDs': ['FED8'],\n 'kCBAdvDataManufacturerData': {\n 'byteLength': 7 // data not shown\n },\n 'kCBAdvDataTxPowerLevel': 32,\n 'kCBAdvDataIsConnectable': true\n },\n 'rssi': -53\n }\n```\n\n## Typed Arrays\n\nThis plugin uses typed Arrays or ArrayBuffers for sending and receiving data.\n\nThis means that you need convert your data to ArrayBuffers before sending and from ArrayBuffers when receiving.\n\n```typescript\n // ASCII only\n function stringToBytes(string) {\n var array = new Uint8Array(string.length);\n for (var i = 0, l = string.length; i < l; i++) {\n array[i] = string.charCodeAt(i);\n }\n return array.buffer;\n }\n\n // ASCII only\n function bytesToString(buffer) {\n return String.fromCharCode.apply(null, new Uint8Array(buffer));\n }\n```\nYou can read more about typed arrays in these articles on [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) and [HTML5 Rocks](http://www.html5rocks.com/en/tutorials/webgl/typed_arrays/).\n\n## UUIDs\n\nUUIDs are always strings and not numbers. Some 16-bit UUIDs, such as '2220' look like integers, but they're not. (The integer 2220 is 0x8AC in hex.) This isn't a problem with 128 bit UUIDs since they look like strings 82b9e6e1-593a-456f-be9b-9215160ebcac. All 16-bit UUIDs should also be passed to methods as strings.\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/don/cordova-plugin-ble-central",
"cordovaPlugin": {
"name": "cordova-plugin-ble-central"
}
},
{
"packageName": "@ionic-native/blinkid",
"displayName": "BlinkId",
"description": "\nMicroblink SDK wrapper for barcode and document scanning. See the\nblinkid-phonegap repository for available recognizers and other settings\n",
"usage": "\n```typescript\nimport { BlinkId, RecognizerResultState } from '@ionic-native/blinkid/ngx';\n\nconstructor(private blinkId: BlinkId) { }\n\n...\n\nconst overlaySettings = new this.blinkId.DocumentOverlaySettings();\n\nconst usdlRecognizer = new this.blinkId.UsdlRecognizer();\nconst usdlSuccessFrameGrabber = new this.blinkId.SuccessFrameGrabberRecognizer(usdlRecognizer);\n\nconst barcodeRecognizer = new this.blinkId.BarcodeRecognizer();\nbarcodeRecognizer.scanPdf417 = true;\n\nconst recognizerCollection = new this.blinkId.RecognizerCollection([\n usdlSuccessFrameGrabber,\n barcodeRecognizer,\n]);\n\nconst canceled = await this.blinkId.scanWithCamera(\n overlaySettings,\n recognizerCollection,\n { ios: IOS_LICENSE_KEY, android: ANDROID_LICENSE_KEY },\n);\n\nif (!canceled) {\n if (usdlRecognizer.result.resultState === RecognizerResultState.valid) {\n const successFrame = usdlSuccessFrameGrabber.result.successFrame;\n if (successFrame) {\n this.base64Img = `data:image/jpg;base64, ${successFrame}`;\n this.fields = usdlRecognizer.result.fields;\n }\n } else {\n this.barcodeStringData = barcodeRecognizer.result.stringData;\n }\n}\n```\n",
"platforms": [
"iOS",
"Android"
],
"repo": "https://github.com/BlinkID/blinkid-phonegap",
"cordovaPlugin": {
"name": "blinkid-cordova"
}
},
{
"packageName": "@ionic-native/blinkup",
"displayName": "BlinkUp",
"description": "\nElectric Imp BlinkUp ionic plugin.\n",
"usage": "\n```typescript\nimport { BlinkUp } from '@ionic-native/blinkup/ngx';\n\nconst options = <BlinkUpWifiOptions>{\n apiKey: 'API_KEY',\n timeoutMs: 60000,\n ssid: 'MY_SSID',\n password: 'MY_PASSWORD'\n }\n BlinkUp.flashWifiBlinkUp(options).subscribe(\n (result) => console.log('Done'),\n (error) => console.log(error)\n )\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/SensorShare/cordova-plugin-blinkup",
"cordovaPlugin": {
"name": "cordova-plugin-blinkup"
}
},
{
"packageName": "@ionic-native/bluetooth-le",
"displayName": "BluetoothLE",
"description": "\nThis plugin has the most complete implementation for interacting with Bluetooth LE devices on Android, iOS and partially Windows.\nIt's a wrap around [randdusing/cordova-plugin-bluetoothle](https://github.com/randdusing/cordova-plugin-bluetoothle/blob/master/readme.md) cordova plugin for Ionic.\nIt supports peripheral **and** central modes and covers most of the API methods available on Android and iOS.\n",
"usage": "\n```typescript\nimport { BluetoothLE } from '@ionic-native/bluetooth-le/ngx';\n\n\nconstructor(public bluetoothle: BluetoothLE, public plt: Platform) {\n\n this.plt.ready().then((readySource) => {\n\n console.log('Platform ready from', readySource);\n\n this.bluetoothle.initialize().then(ble => {\n console.log('ble', ble.status) // logs 'enabled'\n });\n\n });\n}\n\n```\n\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/randdusing/cordova-plugin-bluetoothle",
"cordovaPlugin": {
"name": "cordova-plugin-bluetoothle"
}
},
{
"packageName": "@ionic-native/bluetooth-serial",
"displayName": "Bluetooth Serial",
"description": "This plugin enables serial communication over Bluetooth. It was written for communicating between Android or iOS and an Arduino (not Android to Android or iOS to iOS).",
"usage": "\n```typescript\nimport { BluetoothSerial } from '@ionic-native/bluetooth-serial/ngx';\n\nconstructor(private bluetoothSerial: BluetoothSerial) { }\n\n\n// Write a string\nthis.bluetoothSerial.write('hello world').then(success, failure);\n\n// Array of int or bytes\nthis.bluetoothSerial.write([186, 220, 222]).then(success, failure);\n\n// Typed Array\nvar data = new Uint8Array(4);\ndata[0] = 0x41;\ndata[1] = 0x42;\ndata[2] = 0x43;\ndata[3] = 0x44;\nthis.bluetoothSerial.write(data).then(success, failure);\n\n// Array Buffer\nthis.bluetoothSerial.write(data.buffer).then(success, failure);\n```\n",
"platforms": [
"Android",
"iOS",
"Windows Phone 8"
],
"repo": "https://github.com/don/BluetoothSerial",
"cordovaPlugin": {
"name": "cordova-plugin-bluetooth-serial"
}
},
{
"packageName": "@ionic-native/braintree",
"displayName": "Braintree",
"description": "\nThis plugin enables the use of the Braintree Drop-In Payments UI in your Ionic applications on Android and iOS, using the native Drop-In UI for each platform (not the Javascript SDK).\n\n Ionic Native utilizes [a maintained fork](https://github.com/taracque/cordova-plugin-braintree) of the original `cordova-plugin-braintree`\n\n For information on how to use Apple Pay with this plugin, please refer to the [plugin documentation](https://github.com/Taracque/cordova-plugin-braintree#apple-pay-ios-only)\n\n**NOTE**: This is not a complete payments solution. All of the Braintree client-side UIs simply generate a payment nonce that must then be processed by your server to complete the payment.\nSee the [Braintree Node server documentation](https://developers.braintreepayments.com/start/hello-server/node) for details and a [sample Express server](https://github.com/braintree/braintree_express_example) that implements the required functionality.\n",
"usage": "\n```typescript\nimport { Braintree, ApplePayOptions, PaymentUIOptions } from '@ionic-native/braintree/ngx';\n\nconstructor(private braintree: Braintree) { }\n\n...\n\n// Your Braintree `Tokenization Key` from the Braintree dashboard.\n// Alternatively you can also generate this token server-side\n// using a client ID in order to allow users to use stored payment methods.\n// See the [Braintree Client Token documentation](https://developers.braintreepayments.com/reference/request/client-token/generate/node#customer_id) for details.\nconst BRAINTREE_TOKEN = '<YOUR_BRAINTREE_TOKEN>';\n\n// NOTE: Do not provide this unless you have configured your Apple Developer account\n// as well as your Braintree merchant account, otherwise the Braintree module will fail.\nconst appleOptions: ApplePayOptions = {\n merchantId: '<YOUR MERCHANT ID>',\n currency: 'USD',\n country: 'US'\n}\n\nconst paymentOptions: PaymentUIOptions = {\n amount: '14.99',\n primaryDescription: 'Your product or service (per /item, /month, /week, etc)',\n}\n\nthis.braintree.initialize(BRAINTREE_TOKEN)\n .then(() => this.braintree.setupApplePay(appleOptions))\n .then(() => this.braintree.presentDropInPaymentUI(paymentOptions))\n .then((result: PaymentUIResult) => {\n if (result.userCancelled) {\n console.log(\"User cancelled payment dialog.\");\n } else {\n console.log(\"User successfully completed payment!\");\n console.log(\"Payment Nonce: \" + result.nonce);\n console.log(\"Payment Result.\", result);\n }\n })\n .catch((error: string) => console.error(error));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/taracque/cordova-plugin-braintree",
"cordovaPlugin": {
"name": "cordova-plugin-braintree"
}
},
{
"packageName": "@ionic-native/branch-io",
"displayName": "BranchIo",
"description": "\nBranch.io is an attribution service for deeplinking and invitation links\n",
"usage": "\n```\nimport { BranchIo } from '@ionic-native/branch-io/ngx';\n\n\nconstructor(private branch: BranchIo) { }\n\n```\n",
"platforms": [
"iOS",
"Android"
],
"repo": "https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking",
"cordovaPlugin": {
"name": "branch-cordova-sdk"
}
},
{
"packageName": "@ionic-native/brightness",
"displayName": "Brightness",
"description": "\nThe Brightness plugin let you control the display brightness of your device.\n\nRequires Cordova plugin: `cordova-plugin-brightness`. For more info, please see the [Brightness plugin docs](https://github.com/mgcrea/cordova-plugin-brightness).\n",
"usage": "\n```typescript\nimport { Brightness } from '@ionic-native/brightness/ngx';\n\nconstructor(private brightness: Brightness) { }\n\n...\n\nlet brightnessValue = 0.8;\nthis.brightness.setBrightness(brightnessValue);\n```\n\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/mgcrea/cordova-plugin-brightness",
"cordovaPlugin": {
"name": "cordova-plugin-brightness"
}
},
{
"packageName": "@ionic-native/broadcaster",
"displayName": "Broadcaster",
"description": "\nThis plugin adds exchanging events between native code and your app.\n",
"usage": "\n```typescript\nimport { Broadcaster } from '@ionic-native/broadcaster/ngx';\n\nconstructor(private broadcaster: Broadcaster) { }\n\n...\n\n// Listen to events from Native\nthis.broadcaster.addEventListener('eventName').subscribe((event) => console.log(event));\n\n// Send event to Native\nthis.broadcaster.fireNativeEvent('eventName', {}).then(() => console.log('success'));\n\n```\n",
"platforms": [
"Android",
"iOS",
"Browser"
],
"repo": "https://github.com/bsorrentino/cordova-broadcaster",
"cordovaPlugin": {
"name": "cordova-plugin-broadcaster"
}
},
{
"packageName": "@ionic-native/browser-tab",
"displayName": "Browser Tab",
"description": "\nThis plugin provides an interface to in-app browser tabs that exist on some mobile platforms, specifically [Custom Tabs](http://developer.android.com/tools/support-library/features.html#custom-tabs) on Android (including the [Chrome Custom Tabs](https://developer.chrome.com/multidevice/android/customtabs) implementation), and [SFSafariViewController](https://developer.apple.com/library/ios/documentation/SafariServices/Reference/SFSafariViewController_Ref/) on iOS.\n",
"usage": "\n```typescript\nimport { BrowserTab } from '@ionic-native/browser-tab/ngx';\n\nconstructor(private browserTab: BrowserTab) {\n\n browserTab.isAvailable()\n .then(isAvailable => {\n if (isAvailable) {\n browserTab.openUrl('https://ionic.io');\n } else {\n // open URL with InAppBrowser instead or SafariViewController\n }\n });\n}\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/google/cordova-plugin-browsertab",
"cordovaPlugin": {
"name": "cordova-plugin-browsertab"
}
},
{
"packageName": "@ionic-native/calendar",
"displayName": "Calendar",
"description": "\nThis plugin allows you to add events to the Calendar of the mobile device.\n\nRequires Cordova plugin: `cordova-plugin-calendar`. For more info, please see the [Calendar plugin docs](https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin).\n\n",
"usage": "\n```typescript\nimport { Calendar } from '@ionic-native/calendar/ngx';\n\nconstructor(private calendar: Calendar) { }\n\n\nthis.calendar.createCalendar('MyCalendar').then(\n (msg) => { console.log(msg); },\n (err) => { console.log(err); }\n);\n```",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin",
"cordovaPlugin": {
"name": "cordova-plugin-calendar"
}
},
{
"packageName": "@ionic-native/call-directory",
"displayName": "Call Directory",
"description": "\nThis plugin can add phone numbers to an Callkit call directory extension. Call `reloadExtension` after using `addIdentification` and `removeIdentification`\nto process the changes in the call directory extension.\n",
"usage": "\n```typescript\nimport { CallDirectory } from '@ionic-native/call-directory/ngx';\n\n\nconstructor(private callDirectory: CallDirectory) { }\n\n\nlet items = [{label: \"Hello\", number: \"123\"}];\nthis.callDirectory.addIdentification(items)\n .then((res: any) => console.log(res))\n .catch((error: any) => console.error(error));\n\nthis.callDirectory.reloadExtension()\n .then(res: string) => console.log(res))\n .catch((error: any) => console.error(error));\n```\n",
"platforms": [
"iOS"
],
"repo": "https://github.com/GEDYSIntraWare/cordova-plugin-call-directory",
"cordovaPlugin": {
"name": "cordova-plugin-call-directory"
}
},
{
"packageName": "@ionic-native/call-log",
"displayName": "Call Log",
"description": "\nThis plugin access the call history on a device and that can be filtered\n",
"usage": "\n```typescript\nimport { CallLog } from '@ionic-native/call-log/ngx';\n\n\nconstructor(private callLog: CallLog) { }\n\n````",
"platforms": [
"Android"
],
"repo": "https://github.com/creacore-team/cordova-plugin-calllog",
"cordovaPlugin": {
"name": "cordova-plugin-calllog"
}
},
{
"packageName": "@ionic-native/call-number",
"displayName": "Call Number",
"description": "\nCall a number directly from your Cordova/Ionic application.\n**NOTE**: The iOS Simulator (and maybe Android Simulators) do not provide access to the phone subsystem.\n",
"usage": "\n```typescript\nimport { CallNumber } from '@ionic-native/call-number/ngx';\n\nconstructor(private callNumber: CallNumber) { }\n\n...\n\n\nthis.callNumber.callNumber(\"18001010101\", true)\n .then(res => console.log('Launched dialer!', res))\n .catch(err => console.log('Error launching dialer', err));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/Rohfosho/CordovaCallNumberPlugin",
"cordovaPlugin": {
"name": "call-number"
}
},
{
"packageName": "@ionic-native/camera-preview",
"displayName": "Camera Preview",
"description": "\nShowing camera preview in HTML\n\nRequires Cordova plugin: `https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview.git`. For more info, please see the [Cordova Camera Preview docs](https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview).\n",
"usage": "\n```typescript\nimport { CameraPreview, CameraPreviewPictureOptions, CameraPreviewOptions, CameraPreviewDimensions } from '@ionic-native/camera-preview/ngx';\n\nconstructor(private cameraPreview: CameraPreview) { }\n\n...\n\n// camera options (Size and location). In the following example, the preview uses the rear camera and display the preview in the back of the webview\nconst cameraPreviewOpts: CameraPreviewOptions = {\n x: 0,\n y: 0,\n width: window.screen.width,\n height: window.screen.height,\n camera: 'rear',\n tapPhoto: true,\n previewDrag: true,\n toBack: true,\n alpha: 1\n}\n\n// start camera\nthis.cameraPreview.startCamera(cameraPreviewOpts).then(\n (res) => {\n console.log(res)\n },\n (err) => {\n console.log(err)\n });\n\n// Set the handler to run every time we take a picture\nthis.cameraPreview.setOnPictureTakenHandler().subscribe((result) => {\n console.log(result);\n // do something with the result\n});\n\n\n// picture options\nconst pictureOpts: CameraPreviewPictureOptions = {\n width: 1280,\n height: 1280,\n quality: 85\n}\n\n// take a picture\nthis.cameraPreview.takePicture(this.pictureOpts).then((imageData) => {\n this.picture = 'data:image/jpeg;base64,' + imageData;\n}, (err) => {\n console.log(err);\n this.picture = 'assets/img/test.jpg';\n});\n\n\n// Switch camera\nthis.cameraPreview.switchCamera();\n\n// set color effect to negative\nthis.cameraPreview.setColorEffect('negative');\n\n// Stop the camera preview\nthis.cameraPreview.stopCamera();\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview",
"cordovaPlugin": {
"name": "cordova-plugin-camera-preview"
}
},
{
"packageName": "@ionic-native/camera",
"displayName": "Camera",
"description": "\nTake a photo or capture video.\n\nRequires the Cordova plugin: `cordova-plugin-camera`. For more info, please see the [Cordova Camera Plugin Docs](https://github.com/apache/cordova-plugin-camera).\n\n[Warning] Since IOS 10 the camera requires permissions to be placed in your config.xml add\n```xml\n<config-file parent=\"NSCameraUsageDescription\" platform=\"ios\" target=\"*-Info.plist\">\n <string>You can take photos</string>\n</config-file>\n```\ninside of the <platform name='ios> section\n",
"usage": "\n```typescript\nimport { Camera, CameraOptions } from '@ionic-native/camera/ngx';\n\nconstructor(private camera: Camera) { }\n\n...\n\n\nconst options: CameraOptions = {\n quality: 100,\n destinationType: this.camera.DestinationType.FILE_URI,\n encodingType: this.camera.EncodingType.JPEG,\n mediaType: this.camera.MediaType.PICTURE\n}\n\nthis.camera.getPicture(options).then((imageData) => {\n // imageData is either a base64 encoded string or a file URI\n // If it's base64 (DATA_URL):\n let base64Image = 'data:image/jpeg;base64,' + imageData;\n}, (err) => {\n // Handle error\n});\n```",
"platforms": [
"Android",
"Browser",
"iOS",
"Windows"
],
"repo": "https://github.com/apache/cordova-plugin-camera",
"cordovaPlugin": {
"name": "cordova-plugin-camera"
}
},
{
"packageName": "@ionic-native/card-io",
"displayName": "Card IO",
"description": "",
"usage": "\nThis plug-in exposes card.io credit card scanning.\n\n**NOTE**: If you would like to actually process a credit card charge, you might be interested in the [PayPal Cordova Plug-in](https://github.com/paypal/PayPal-Cordova-Plugin).\n\nRequires Cordova plugin: `card.io.cordova.mobilesdk`. For more info, please see the [Card IO plugin docs](https://github.com/card-io/card.io-Cordova-Plugin).\n\nNote: For use with iOS 10 + When building your app with the iOS 10 SDK +, you have to add some info to the info.plist file. This is due to increased security in iOS 10. Go to your app directory and search for the <your app name>Info.plist file. Add the following lines in the main <dict> element.\n```xml\n<key>NSCameraUsageDescription</key>\n<string>To scan credit cards.</string>\n```\n```typescript\nimport { CardIO } from '@ionic-native/card-io/ngx';\n\nconstructor(private cardIO: CardIO) { }\n\n...\n\n\nthis.cardIO.canScan()\n .then(\n (res: boolean) => {\n if(res){\n let options = {\n requireExpiry: true,\n requireCVV: false,\n requirePostalCode: false\n };\n this.cardIO.scan(options);\n }\n }\n );\n```",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/card-io/card.io-Cordova-Plugin",
"cordovaPlugin": {
"name": "card.io.cordova.mobilesdk"
}
},
{
"packageName": "@ionic-native/chooser",
"displayName": "Chooser",
"description": "\nFile chooser plugin for Cordova.\n\nThe following must be added to config.xml to prevent crashing when selecting large files on Android:\n```xml\n<platform name=\"android\">\n <edit-config\n file=\"app/src/main/AndroidManifest.xml\"\n mode=\"merge\"\n target=\"/manifest/application\">\n <application android:largeHeap=\"true\" />\n </edit-config>\n</platform>\n```\n",
"usage": "\n```typescript\nimport { Chooser } from '@ionic-native/chooser/ngx';\n\n\nconstructor(private chooser: Chooser) { }\n\n...\n\n\nthis.chooser.getFile()\n .then(file => console.log(file ? file.name : 'canceled'))\n .catch((error: any) => console.error(error));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/cyph/cordova-plugin-chooser",
"cordovaPlugin": {
"name": "cordova-plugin-chooser"
}
},
{
"packageName": "@ionic-native/class-kit",
"displayName": "Class Kit",
"description": "Plugin for using Apple's ClassKit framework.\n\n\nPrerequisites:\nOnly works with Xcode 9.4 and iOS 11.4. Your Provisioning Profile must include the ClassKit capability. Read more about how to Request ClassKit Resources (https://developer.apple.com/contact/classkit/) in here: https://developer.apple.com/documentation/classkit/enabling_classkit_in_your_app.\nAlso note that you can’t test ClassKit behavior in Simulator because Schoolwork isn’t available in that environment.\n",
"usage": "\n```typescript\nimport { ClassKit, CCKContext, CCKBinaryItem, CCKQuantityItem, CCKScoreItem, CCKContextTopic, CCKContextType, CCKBinaryType } from '@ionic-native/class-kit/ngx';\n\n// Init contexts defined in XML file 'CCK-contexts.xml'\nconstructor( ..., private classKit: ClassKit) {\n platform.ready().then(() => {\n classKit.initContextsFromXml(\"classkitplugin://\")\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n });\n}\n\n...\n\n// Init context with identifier path\nconst context: CCKContext = {\n identifierPath: [\"parent_title_one\", \"child_one\", \"child_one_correct_quiz\"],\n title: \"child one correct quiz\",\n type: CCKContextType.exercise,\n topic: CCKContextTopic.science,\n displayOrder: 0\n};\n\nthis.classKit.addContext(\"classkitplugin://\", context)\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n\n\n// Remove all contexts\nthis.classKit.removeContexts()\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n\n\n// Remove context with identifier path\nthis.classKit.removeContext([\"parent_title_one\", \"child_one\", \"child_one_correct_quiz\"])\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n\n\n// Begin a new activity or restart an activity for a given context\nthis.classKit.beginActivity([\"parent_title_one\", \"child_two\", \"child_two_quiz\"], false)\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n\n\n// Adds a progress range to the active given activity\nthis.classKit.setProgressRange(0, 0.66)\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n\n\n// Adds a progress to the active given activity\nthis.classKit.setProgress(0.66)\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n\n\n// Adds activity information that is true or false, pass or fail, yes or no\nconst binaryItem: CCKBinaryItem = {\n identifier: \"child_two_quiz_IDENTIFIER_1\",\n title: \"CHILD TWO QUIZ 1\",\n type: CCKBinaryType.trueFalse,\n isCorrect: isCorrect,\n isPrimaryActivityItem: false\n};\n\nthis.classKit.setBinaryItem(binaryItem)\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n\n\n// Adds activity information that signifies a score out of a possible maximum\nconst scoreItem: CCKScoreItem = {\n identifier: \"total_score\",\n title: \"Total Score :-)\",\n score: 0.66,\n maxScore: 1.0,\n isPrimaryActivityItem: true\n};\n\nthis.classKit.setScoreItem(scoreItem)\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n\n\n// Activity information that signifies a quantity\nconst quantityItem: CCKQuantityItem = {\n identifier: \"quantity_item_hints\",\n title: \"Hints\",\n quantity: 12,\n isPrimaryActivityItem: false\n};\n\nthis.classKit.setQuantityItem(quantityItem)\n .then(() => console.log(\"success\"))\n .catch(e => console.log(\"error: \", e));\n\n```\n",
"platforms": [
"iOS"
],
"repo": "https://github.com/sebastianbaar/cordova-plugin-classkit.git",
"cordovaPlugin": {
"name": "cordova-plugin-classkit"
}
},
{
"packageName": "@ionic-native/clevertap",
"displayName": "CleverTap",
"description": "\nCordova Plugin that wraps CleverTap SDK for Android and iOS\n",
"usage": "\n```typescript\nimport { CleverTap } from '@ionic-native/clevertap/ngx';\n\nconstructor(private clevertap: CleverTap) { }\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/CleverTap/clevertap-cordova",
"cordovaPlugin": {
"name": "clevertap-cordova"
}
},
{
"packageName": "@ionic-native/clipboard",
"displayName": "Clipboard",
"description": "\nClipboard management plugin for Cordova that supports iOS, Android, and Windows Phone 8.\n\n",
"usage": "\n```typescript\nimport { Clipboard } from '@ionic-native/clipboard/ngx';\n\nconstructor(private clipboard: Clipboard) { }\n\n...\n\n\nthis.clipboard.copy('Hello world');\n\nthis.clipboard.paste().then(\n (resolve: string) => {\n alert(resolve);\n },\n (reject: string) => {\n alert('Error: ' + reject);\n }\n );\n\nthis.clipboard.clear();\n```\n",
"platforms": [
"Android",
"iOS",
"Windows Phone 8"
],
"repo": "https://github.com/ihadeed/cordova-clipboard",
"cordovaPlugin": {
"name": "cordova-clipboard"
}
},
{
"packageName": "@ionic-native/cloud-settings",
"displayName": "Cloud Settings",
"description": "\nStores app settings in cloud storage so if the user re-installs the app or installs it on a different device, the settings will be restored and available in the new installation.\n",
"usage": "\n```typescript\nimport { CloudSettings } from '@ionic-native/cloud-settings/ngx';\n\n\nconstructor(private cloudSettings: CloudSettings) { }\n\n...\n\nthis.cloudSettings.exists()\n .then((exists: boolean) => console.log(\"Saved settings exist: \" + exists) )\n\nthis.cloudSettings.load()\n .then((settings: any) => this.settings = settings)\n .catch((error: any) => console.error(error));\n\nthis.cloudSettings.save(this.settings)\n .then((savedSettings: any) => console.log(\"Saved settings: \" + JSON.stringify(savedSettings)))\n .catch((error: any) => console.error(error));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/dpa99c/cordova-plugin-cloud-settings",
"cordovaPlugin": {
"name": "cordova-plugin-cloud-settings"
}
},
{
"packageName": "@ionic-native/code-push",
"displayName": "Code Push",
"description": "\nCodePush plugin for Cordova by Microsoft that supports iOS and Android.\n\nFor more info, please see https://github.com/Dellos7/example-cordova-code-push-plugin\n",
"usage": "\n```typescript\nimport { CodePush } from '@ionic-native/code-push/ngx';\n\nconstructor(private codePush: CodePush) { }\n\n...\n\n// note - mostly error & completed methods of observable will not fire\n// as syncStatus will contain the current state of the update\nthis.codePush.sync().subscribe((syncStatus) => console.log(syncStatus));\n\nconst downloadProgress = (progress) => { console.log(`Downloaded ${progress.receivedBytes} of ${progress.totalBytes}`); }\nthis.codePush.sync({}, downloadProgress).subscribe((syncStatus) => console.log(syncStatus));\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/Microsoft/cordova-plugin-code-push",
"cordovaPlugin": {
"name": "cordova-plugin-code-push"
}
},
{
"packageName": "@ionic-native/colored-browser-tabs",
"displayName": "Colored Browser Tabs",
"description": "\nThis plugin opens Chrome Custom Tabs on Android or SafariViewController on iOS\n",
"usage": "\n```typescript\nimport { ColoredBrowserTabs } from '@ionic-native/colored-browser-tabs/ngx';\n\n\nconstructor(private browserTabs: ColoredBrowserTabs) { }\n\n...\n\n\nthis.browserTabs.openTab('www.example.url', '#ffffff')\n .subscribe()\n\nthis.browserTabs.openTabWithAnimation('www.example.url', 'slide_x', '#ffffff')\n .subscribe()\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/TobyEb/cordova-plugin-colored-browser-tabs",
"cordovaPlugin": {
"name": "cordova-plugin-colored-browser-tabs"
}
},
{
"packageName": "@ionic-native/contacts",
"displayName": "Contacts",
"description": "\nAccess and manage Contacts on the device.\n",
"usage": "\n\n```typescript\nimport { Contacts, Contact, ContactField, ContactName } from '@ionic-native/contacts/ngx';\n\nconstructor(private contacts: Contacts) { }\n\nlet contact: Contact = this.contacts.create();\n\ncontact.name = new ContactName(null, 'Smith', 'John');\ncontact.phoneNumbers = [new ContactField('mobile', '6471234567')];\ncontact.save().then(\n () => console.log('Contact saved!', contact),\n (error: any) => console.error('Error saving contact.', error)\n);\n\n```",
"platforms": [
"Android",
"BlackBerry 10",
"Browser",
"Firefox OS",
"iOS",
"Ubuntu",
"Windows",
"Windows 8",
"Windows Phone"
],
"repo": "https://github.com/apache/cordova-plugin-contacts",
"cordovaPlugin": {
"name": "cordova-plugin-contacts"
}
},
{
"packageName": "@ionic-native/couchbase-lite",
"displayName": "Couchbase Lite",
"description": "\nPlugin to install Couchbase Lite in your PhoneGap app on iOS or Android\n",
"usage": "\n```typescript\nimport { CouchbaseLite } from '@ionic-native/couchbase-lite/ngx';\nimport { Http } from '@angular/http';\nimport { Observable } from 'rxjs'\nconstructor(private couchbase: CouchbaseLite, private platform:Platform,private _http:Http) {\n this.initMethod();\n}\nurl:string;\ninitMethod() {\n this.couchbase.getURL().then((url)=> {\n this.url = url;\n })\n}\ngetUrl() {\n return this.url;\n}\n// DATABASES //\ncreateDatabase(database_name:string) {\n let url = this.getUrl();\n url = url+database_name;\n return this._http\n .put(url)\n .map(data => { this.results = data['results'] })\n .catch((error:any) => {\n return Observable.throw(error.json() || 'Couchbase Lite error');\n })\n }\ndeleteDatabase(database_name:string) {\n let url = this.getUrl();\n url = url+database_name;\n return this._http\n .delete(url)\n .map(data => { this.results = data['results'] })\n .catch((error:any) => {\n return Observable.throw(error.json() || 'Couchbase Lite error');\n })\n}\ngetAllDbs() {\n let url = this.getUrl();\n url = url+'_all_dbs';\n return this._http\n .get(url)\n .map(data => { this.results = data['results'] })\n .catch((error:any) => {\n return Observable.throw(error.json() || 'Couchbase Lite error');\n })\n}\n// DOCUMENTS //\ngetAllDocuments(database_name:string){\n let url = this.getUrl();\n // include_docs=true will include a doc inside response, it is false by default\n url = url + database_name + '/_all_docs?include_docs=true';\n return this._http\n .get(url)\n .map(data => { this.results = data['results'] })\n .catch((error:any) => {\n return Observable.throw(error.json() || 'Couchbase Lite error');\n }) .\n}\ncreateDocument(database_name:string,document){\n let url = this.getUrl();\n url = url + database_name;\n return this._http\n .post(url,document)\n .map(data => { this.results = data['results'] })\n .catch((error:any) => {\n return Observable.throw(error.json() || 'Couchbase Lite error');\n }) .\n}\nlet document = {\n _id:'You can either specify the document ID (must be string) else couchbase generates one for your doc',\n data:{name:'sandman',age:25,city:pune}\n }\ncreateDocument('justbe', document);\n// successful response\n{ \"id\": \"string\",\"rev\": \"string\",\"ok\": true }\nupdateDocument(database_name:string,document){\n let url = this.getUrl();\n url = url + database_name + '/' + document._id;\n return this._http\n .put(url,document)\n .map(data => { this.results = data['results'] })\n .catch((error:any) => {\n return Observable.throw(error.json() || 'Couchbase Lite error');\n }) .\n}\n// for updation of document your document must contain most recent rev(revision) id.\n// for each updation of document new rev id is get generated\n// successful response\n{ \"id\": \"string\",\"rev\": \"string(new revision id)\",\"ok\": true }\ndeleteDocument(database_name:string,document){\n let url = this.getUrl();\n url = url + database_name + '/' + document._id +'?rev='+doc._rev;\n return this._http\n .delete(url)\n .map(data => { this.results = data['results'] })\n .catch((error:any) => {\n return Observable.throw(error.json() || 'Couchbase Lite error');\n }) .\n}\n\n\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/couchbaselabs/Couchbase-Lite-PhoneGap-Plugin",
"cordovaPlugin": {
"name": "couchbase-lite-phonegap-plugin"
}
},
{
"packageName": "@ionic-native/crop",
"displayName": "Crop",
"description": "Crops images",
"usage": "\n```typescript\nimport { Crop } from '@ionic-native/crop/ngx';\n\nconstructor(private crop: Crop) { }\n\n...\n\nthis.crop.crop('path/to/image.jpg', {quality: 75})\n .then(\n newImage => console.log('new image path is: ' + newImage),\n error => console.error('Error cropping image', error)\n );\n```",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/jeduan/cordova-plugin-crop",
"cordovaPlugin": {
"name": "cordova-plugin-crop"
}
},
{
"packageName": "@ionic-native/date-picker",
"displayName": "Date Picker",
"description": "\nThe DatePicker plugin allows the user to fetch date or time using native dialogs.\n",
"usage": "\n```typescript\nimport { DatePicker } from '@ionic-native/date-picker/ngx';\n\nconstructor(private datePicker: DatePicker) { }\n\n\n...\n\n\nthis.datePicker.show({\n date: new Date(),\n mode: 'date',\n androidTheme: this.datePicker.ANDROID_THEMES.THEME_HOLO_DARK\n}).then(\n date => console.log('Got date: ', date),\n err => console.log('Error occurred while getting date: ', err)\n);\n```",
"platforms": [
"Android",
"iOS",
"Windows"
],
"repo": "https://github.com/VitaliiBlagodir/cordova-plugin-datepicker",
"cordovaPlugin": {
"name": "cordova-plugin-datepicker"
}
},
{
"packageName": "@ionic-native/db-meter",
"displayName": "DB Meter",
"description": "This plugin defines a global DBMeter object, which permits to get the decibel values from the microphone.",
"usage": "\n```typescript\nimport { DBMeter } from '@ionic-native/db-meter/ngx';\n\nconstructor(private dbMeter: DBMeter) { }\n\n...\n\n\n// Start listening\nlet subscription = this.dbMeter.start().subscribe(\n data => console.log(data)\n);\n\n// Check if we are listening\nthis.dbMeter.isListening().then(\n isListening => console.log(isListening)\n);\n\n// Stop listening\nsubscription.unsubscribe();\n\n// Delete DBMeter instance from memory\nthis.dbMeter.delete().then(\n () => console.log('Deleted DB Meter instance'),\n error => console.log('Error occurred while deleting DB Meter instance')\n);\n```\n",
"platforms": [
"Android",
"iOS"
],
"repo": "https://github.com/akofman/cordova-plugin-dbmeter",
"cordovaPlugin": {
"name": "cordova-plugin-dbmeter"
}
},
{
"packageName": "@ionic-native/deeplinks",
"displayName": "Deeplinks",
"description": "This plugin handles deeplinks on iOS and Android for both custom URL scheme links\nand Universal App Links.\n",
"usage": "\n```typescript\nimport { Deeplinks } from '@ionic-native/deeplinks/ngx';\n\nconstructor(private deeplinks: Deeplinks) { }\n\nthis.deeplinks.route({\n '/about-us': AboutPage,\n '/universal-links-test': AboutPage,\n '/products/:productId': ProductPage\n }).subscribe(match => {\n // match.$route - the route we matched, which is the matched entry from the arguments to route()\n // match.$args - the args passed in the link\n // match.$link - the full link data\n console.log('Successfully matched route', match);\n }, nomatch => {\n // nomatch.$link - the full link data\n console.error('Got a deeplink that didn\\'t match', nomatch);\n });\n```\n\nAlternatively, if you're using Ionic, there's a convenience method that takes a reference to a `NavController` and handles\nthe actual navigation for you:\n\n```typescript\nthis.deeplinks.routeWithNavController(this.navController, {\n '/about-us': AboutPage,\n '/products/:productId': ProductPage\n}).subscribe(match => {\n // match.$route - the route we matched, which is the matched entry from the arguments to route()\n // match.$args - the args passed in the link\n // match.$link - the full link data\n console.log('Successfully matched route', match);\n }, nomatch => {\n // nomatch.$link - the full link data\n console.error('Got a deeplink that didn\\'t match', nomatch);\n });\n```\n\nSee the [Ionic Deeplinks Demo](https://github.com/ionic-team/ionic2-deeplinks-demo/blob/master/app/app.ts) for an example of how to\nretrieve the `NavController` reference at runtime.\n",
"platforms": [
"Android",
"Browser",
"iOS"
],
"repo": "https://github.com/ionic-team/ionic-plugin-deeplinks",
"cordovaPlugin": {
"name": "ionic-plugin-deeplinks"