awesome-cordova-plugins/src/@ionic-native/plugins/facebook/index.ts

290 lines
11 KiB
TypeScript
Raw Normal View History

chore(): merge v3-injectable into master (#1203) * feat(push): plugin is now instance based no more callbacks closes #250 * fix(push): fix typo in PushEvents enum * fix constructor * feat(push): add subscribe/unsubscribe fixes #861 * First try * Moving to modules * Removed * Moving things aroudn * tsconfig for plugins * Plugin tsconfigs * Core kind of buidls * Core * Plugin tsconfig * Test * Remove core * Build * Individual packages * Build and push * Some stuff * Bump * Update core-package.json.template * Update plugin-package.json.template * 3.0.0 * Working on injectable * Updates * Checkpoint * More stuff * Remove duplicate injectables * Remove lots of static stuff with a fancy regex * Fix build errors * chore(): nodejs build script * chore(): move fs-extra-promise to devDeps * feat(): make instance based plugins injectable * Cleanup * chore(build): convert dependencies to peer dependencies * chore(build): add auto install scripts (#1059) * feat(core): auto install scripts * minor fixes * minor fixes * remove prompt message * fix(plugins): rename packages/classes * rename google maps * gulp task to generate readme files * readme templates * automating readme file generation and adding it to CI # Conflicts: # src/@ionic-native/plugins/googlemap/index.ts # src/@ionic-native/plugins/inappbrowser/index.ts # src/@ionic-native/plugins/media/index.ts # src/@ionic-native/plugins/sqlite/index.ts * outputting readmes to dist dir instead of src * updating package name in usage instructions * chore(): ngc build * fix build * 3.0.1-0 * 3.1.0-alpha.1 * fix AoT support and add publish script * 3.1.0-alpha.2 * edit publish command * remove alpha tag * remove auto-install and cleanup * 3.1.0-alpha.3 * remove utils from publish command * refactor(): remove some prefixes * remove console logs closes #1145 * chore(): merge master into v3-injectable (#1146) * 2.5.0 * chore(): update changelog * fix(pin-dialog): add missing errorIndex * 2.5.1 * chore(): update changelog * fix(zip): progress callback is optional (#1049) * fix(apprate): add missing Windows Store option (#1072) * Update file-chooser.ts (#1071) Removed semicolon after .then() in usage instructions * docs(device-motion): update interface names (#1076) AccelerationData interface is wrongly named in docs. It should be DeviceMotionAccelerationData. And I added it to import statement. * feat(inappbrowser): add interface for IAB options (#1065) * Add InAppBrowserOptions Interface for better tooling. * feat(inappbrowser): add interface for IAB options * Add more constructor tests. * Add missing iOS options. * docs(media): update method usage (#1089) * fix(push): add the missing option clearBadge (#1087) * docs(badge): fix example (#1096) Error in code example (supplied parameters do not match call signature) * fix(imagepicker): add outputType option (#1098) * fix(facebook): fixes issue when not supplying default params (#1088) * Fix default facebook logEvent parameters * Implement correct parameters format in facebook logEvent method * Update ibeacon.ts (#1099) Return type of `getAuthorizationStatus()` made more explicit. * fix(file): add missing exports (#1101) Any declaration that is not being exported is missing from the resulting d.ts declaration files. * Add InAppBrowserOptions interface to documentation. (#1103) * Update sqlite.ts (#1106) Added a bracket to remove the syntax error * update device orientation docs to reflect renaming of CompassHeading interface (#1107) * Move marker code inside MAP_READY (#1108) The code to set the camera position and marker should be moved inside the function handling MAP_READY. Otherwise they execute before the event is fired and it doesn't work. * refactor(file): accept ArrayBuffer for data to write (#1109) * docs(google-maps): fix param type closes #1110 * fix(media): add missing pauseRecord and resumeRecord methods (#1122) * docs(stripe): fix type and naming issues (#1129) * refactor(paypal): fix type of items (#1125) Type of items should be Array<PayPalItem> instead of string. * fix(serial): Serial.requestPermission() options are optional (#1128) * add success/error indices * feat(browser-tab): add browser tab plugin (#1126) * feature: added hasPermission function to Firebase fixes #1115 * feat: Implemented support for BrowserTab #1077 * docs(browser-tab): add proper docs * fix(background-geolocation): configure returns a promise closes #1118 * docs(background-geolocation): add return types and platforms * fix(contacts): allow passing asterisk as contact field type closes 1093 * fix(contacts): allow passing asterisk as contact field type closes #1093 * fix(plugin): revert changes to support stable version (#1116) fix #1001 * feat(file): add system paths * feat(app-update): add cordova-plugin-app-update support (#1105) * add new app-update plugin * update plugin info * docs(app-update): add docs * feat(alipay): add alipay support. (#1097) * add cordova-alipay-base plugin. to support Alipay payment * change ALI_PID to APP_ID, make it same with the latest SDK * rewrite comments * docs(google-maps): improve docs (#1095) Move `map.moveCamera(position);` inside the MAP_READY event. Allow to zoom the map on first launch (both iOS and Android). * fix(file): remove FileError from return type (#1086) Promises that reject with a `FileError` are not of the type `Promise<T|FileError>`, but `Promise<T>`. The previous declarations of `Promise<T|FileError>` would break typing further down the chain where you are trying to use the value that the typing says could be `T|FileError` but in reality could only be `T`. * feat(google-maps): add constant for map type * fix(file): platform Browser will raise a an DOMException (#1082) fix(File): Platform Browser will raise a an DOMException on resoleLocalFilesystemUrl and tries to write on readonly property DOMException err.message in fillErrorMessage * feat(local-notifications): support for icon background color (#1079) The Cordova plugin Ionic Natives uses allows specifying the background color of the smallIcon. By not including it in your interface you force users to use the default color for their version of Android. While the LocalNotification plugin is not well documented, it does include this feature, see Options.java line 253: ``` /** * @return * The notification background color for the small icon * Returns null, if no color is given. */ public int getColor() { String hex = options.optString("color", null); if (hex == null) { return NotificationCompat.COLOR_DEFAULT; } int aRGB = Integer.parseInt(hex, 16); return aRGB + 0xFF000000; } ``` I've simply added the option to the interface as well as a short description. This lets you go from the default color (varies by Android version): https://goo.gl/photos/nERcj4GZgapy8aee9 To any color you'd like: https://goo.gl/photos/t8V9WVba8jDU49aHA And also works if you also specify a large icon: https://goo.gl/photos/gWQYwa12djmdXfYcA * feat(unique-device-add): add UniqueDeviceId plugin (#1064) * fix plugin * feat(text-to-speech): Add stop method (#1063) https://github.com/vilic/cordova-plugin-tts/pull/32 * feat(appodeal): adds Appodeal SDK wrappers for iOS and Android (#1031) * feat(Appodeal) bootrapping * starting docs * more docs * feat(appodeal): add event Observables * feat(appodeal): replace Cordova Observable events with #.fromEvent() * feat(appodeal): update decorator metadata * feat(couchbase-lite): add CouchbaseLite cordova plugin (#1025) * feat(CouchbaseLite): add CouchbaseLite cordova plugin * add plugin url * feat(background-fetch): Adding Background Fetch requested in #990 (#1013) * Adding Background Fetch (https://github.com/transistorsoft/cordova-plugin-background-fetch) requested in #990 * Adding BackgroundFetch to index * feat(gyroscope): add Gyroscope plugin (#1004) * add gyroscope.ts to plugins * add gyroscope to index * Update gyroscope.ts * Update gyroscope.ts * Revert "fix(File): typing where `FileError` can be thrown" (#1130) * tslint and fix build issues * 2.6.0 * chore(): update changelog * fix(core): dont check if method exists when overriding fixes #1043 * fix(file): fix writeExistingFile closes #1044 * feat(diagnostic): add new methods closes #1045 * feat(background-mode): replace event listeners with on method The methods onactivate, ondeactive and onfailure no longer exist. You must now use `on` method. * feat(background-mode): add missing functions closes #1078 * tslint * set GoogleMapsMapTypeId to private * remove beta from stripe * 2.7.0 * chore(): update changelog * feat(app-preferences): added cordova-plugin-app-preferences support (#1084) * (feat) added cordova-plugin-app-preferences support * replaced callback functions with promises * updated example * (feat) added cordova-plugin-browsertab support * Revert "(feat) added cordova-plugin-browsertab support" This reverts commit 00eb5cf5d8aaac9d798f9d8450e0f35f57ffb52a. * (update) synchronize fetch * feat(photo-library): added cordova-plugin-photo-library (#1102) * feat(photo-library): added cordova-plugin-photo-library * CordovaFiniteObservable moved to photo-library. Overloads are marked as private. * refactor(photo-library): fixed circleci failing in 2.7.0 (#1132) * feat(photo-library): added cordova-plugin-photo-library * CordovaFiniteObservable moved to photo-library. Overloads are marked as private. * fixed typescript error in 2.7.0 * feat(health): add wrapper for cordova-plugin-health (#1039) * feat(health): add wrapper for cordova-plugin-health * fix(Health): add optional params to QueryOptions for .query() * docs(health): fix javadoc of interfaces * fix(health): remove unused Plugin option * docs(health): add missing documentation * doc(health): add promise to return * doc(health): remove empty lines * doc(health): Add description & reference to repo * doc(health: add "return {Promise<any>}" * refactor(safari-view-controller): hide returns promise * fix typo in ibeacon plugin (#1138) * fix(file): fix return types fixes #1139 * docs(background-geolocation): fix param docs * refactor(health): fix return types and prefix interfaces * 2.8.0 * chore(): update changelog * docs(sqlite): syntax error resolved (#1142) * Syntax error resolved The `{}` should be `[]`, but since there is no binding we do not get error. In case we add one, then the syntax will be incorrect. * Fixed a syntax error * fix(background-geolocation): configure returns an observable * docs(): update docs * 3.1.0-rc.1 * refactor(background-geolocation): update imports * docs(background-fetch): fix return type * docs(health): fix return type * chore(CI): fixing npm install instructions in generated readmes * set concurrency to number of cores * chore(): update deps * 3.1.0-rc.2 * chore(): update angular to 2.4.8 * 3.1.0-rc.3 * chore(): update angular to 2.4.8 * chore(): update rxjs to 5.0.1 * chore(): organize and enhance decorators (#1171) * fix/add decorators * fix google maps design * chore(): add root tsconfig to resolve imports in IDE * updates * more fixes * chore(): add options to InstanceCheck * chore(decorators): promise is default for Cordova/Instance check * chore(): add check decroators * docs(): update plugin docs * chore(decorators): fix cordovaCheck and instanceCheck * 3.1.0-rc.4 * chore(docs): remove gitPackage from doc generator * chore(docs): update to latest dgeni version * fix diagnostic * feat(media): create method now returns a promise Breaking change: create no longer returns a MediaObject instance. Make changes to your app accordingly. * docs update + remove any static methods/properties * remove duplicate method * remove extra docs * remove extra docs * docs(): rename plugins * chore(decorators): do not check method name on instancecheck * chore(decorators): do not check method name on cordovacheck * chore(plugin): fix pluginWarn * chore(plugin): fix pluginWarn * fix(decorators): fix InstanceCheck decorator * 3.1.0-rc.5 * chore(docs): fix readme generation * fix(transfer): fix v3 implementation * refactor(paypal): PayPal is brand name * chore(docs): replace all spaces with dashes * chore(): add dashify filter * chore(build): add aot path to core tsconfig * feat(action-sheet): add ANDROID_THEMES constant * refactor(): general cleanup (#1193) * feat(screen-orientation): update wrapper to match v2 of the plugin The whole implementation has changed now. You must update your code. * feat(stripe): add new methods * feat(linkedin): add LinkedIn plugin * 3.1.0-rc.6 * style(screen-orientation): double quote to single * tslint * refactor(pedometer): rename file to index
2017-03-21 04:38:14 +08:00
import { Injectable } from '@angular/core';
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
2015-12-01 12:15:21 +08:00
2016-12-06 21:02:00 +08:00
export interface FacebookLoginResponse {
2016-12-06 21:02:00 +08:00
status: string;
authResponse: {
2016-12-06 21:02:00 +08:00
session_key: boolean;
accessToken: string;
expiresIn: number;
sig: string;
secret: string;
userID: string;
2016-12-06 21:02:00 +08:00
};
2016-12-06 21:02:00 +08:00
}
2016-02-13 08:06:42 +08:00
/**
* @name Facebook
* @description
2016-02-13 08:06:42 +08:00
* Use the Facebook Connect plugin to obtain access to the native FB application on iOS and Android.
*
* Requires Cordova plugin: `cordova-plugin-facebook4`. For more info, please see the [Facebook Connect](https://github.com/jeduan/cordova-plugin-facebook4).
*
* #### Installation
*
* To use the FB plugin, you first have to create a new Facebook App inside of the Facebook developer portal at [https://developers.facebook.com/apps](https://developers.facebook.com/apps).
*
* [![fb-getstarted-1](/img/docs/native/Facebook/1.png)](https://developers.facebook.com/apps/)
*
* Retrieve the `App ID` and `App Name`.
*
* [![fb-getstarted-2](/img/docs/native/Facebook/2.png)](https://developers.facebook.com/apps/)
*
* Then type in the following command in your Terminal, where APP_ID and APP_NAME are the values from the Facebook Developer portal.
*
* ```bash
* ionic cordova plugin add cordova-plugin-facebook4 --variable APP_ID="123456789" --variable APP_NAME="myApplication"
2016-02-13 08:06:42 +08:00
* ```
*
* After, you'll need to add the native platforms you'll be using to your app in the Facebook Developer portal under your app's Settings:
*
* [![fb-getstarted-3](/img/docs/native/Facebook/3.png)](https://developers.facebook.com/apps/)
*
* Click `'Add Platform'`.
*
* [![fb-getstarted-4](/img/docs/native/Facebook/4.png)](https://developers.facebook.com/apps/)
*
* At this point you'll need to open your project's [`config.xml`](https://cordova.apache.org/docs/en/latest/config_ref/index.html) file, found in the root directory of your project.
*
* Take note of the `id` for the next step:
* ```
* <widget id="com.mycompany.testapp" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
* ```
*
* You can also edit the `id` to whatever you'd like it to be.
*
* #### iOS Install
* Under 'Bundle ID', add the `id` from your `config.xml` file:
*
* [![fb-getstarted-5](/img/docs/native/Facebook/5.png)](https://developers.facebook.com/apps/)
*
*
* #### Android Install
* Under 'Google Play Package Name', add the `id` from your `config.xml` file:
*
* [![fb-getstarted-6](/img/docs/native/Facebook/6.png)](https://developers.facebook.com/apps/)
*
*
* And that's it! You can now make calls to Facebook using the plugin.
*
* ## Events
*
* App events allow you to understand the makeup of users engaging with your app, measure the performance of your Facebook mobile app ads, and reach specific sets of your users with Facebook mobile app ads.
*
* - [iOS] [https://developers.facebook.com/docs/ios/app-events](https://developers.facebook.com/docs/ios/app-events)
* - [Android] [https://developers.facebook.com/docs/android/app-events](https://developers.facebook.com/docs/android/app-events)
* - [JS] Does not have an Events API, so the plugin functions are empty and will return an automatic success
*
* Activation events are automatically tracked for you in the plugin.
*
* Events are listed on the [insights page](https://www.facebook.com/insights/).
*
* For tracking events, see `logEvent` and `logPurchase`.
*
* @usage
* ```typescript
chore(): merge v3-injectable into master (#1203) * feat(push): plugin is now instance based no more callbacks closes #250 * fix(push): fix typo in PushEvents enum * fix constructor * feat(push): add subscribe/unsubscribe fixes #861 * First try * Moving to modules * Removed * Moving things aroudn * tsconfig for plugins * Plugin tsconfigs * Core kind of buidls * Core * Plugin tsconfig * Test * Remove core * Build * Individual packages * Build and push * Some stuff * Bump * Update core-package.json.template * Update plugin-package.json.template * 3.0.0 * Working on injectable * Updates * Checkpoint * More stuff * Remove duplicate injectables * Remove lots of static stuff with a fancy regex * Fix build errors * chore(): nodejs build script * chore(): move fs-extra-promise to devDeps * feat(): make instance based plugins injectable * Cleanup * chore(build): convert dependencies to peer dependencies * chore(build): add auto install scripts (#1059) * feat(core): auto install scripts * minor fixes * minor fixes * remove prompt message * fix(plugins): rename packages/classes * rename google maps * gulp task to generate readme files * readme templates * automating readme file generation and adding it to CI # Conflicts: # src/@ionic-native/plugins/googlemap/index.ts # src/@ionic-native/plugins/inappbrowser/index.ts # src/@ionic-native/plugins/media/index.ts # src/@ionic-native/plugins/sqlite/index.ts * outputting readmes to dist dir instead of src * updating package name in usage instructions * chore(): ngc build * fix build * 3.0.1-0 * 3.1.0-alpha.1 * fix AoT support and add publish script * 3.1.0-alpha.2 * edit publish command * remove alpha tag * remove auto-install and cleanup * 3.1.0-alpha.3 * remove utils from publish command * refactor(): remove some prefixes * remove console logs closes #1145 * chore(): merge master into v3-injectable (#1146) * 2.5.0 * chore(): update changelog * fix(pin-dialog): add missing errorIndex * 2.5.1 * chore(): update changelog * fix(zip): progress callback is optional (#1049) * fix(apprate): add missing Windows Store option (#1072) * Update file-chooser.ts (#1071) Removed semicolon after .then() in usage instructions * docs(device-motion): update interface names (#1076) AccelerationData interface is wrongly named in docs. It should be DeviceMotionAccelerationData. And I added it to import statement. * feat(inappbrowser): add interface for IAB options (#1065) * Add InAppBrowserOptions Interface for better tooling. * feat(inappbrowser): add interface for IAB options * Add more constructor tests. * Add missing iOS options. * docs(media): update method usage (#1089) * fix(push): add the missing option clearBadge (#1087) * docs(badge): fix example (#1096) Error in code example (supplied parameters do not match call signature) * fix(imagepicker): add outputType option (#1098) * fix(facebook): fixes issue when not supplying default params (#1088) * Fix default facebook logEvent parameters * Implement correct parameters format in facebook logEvent method * Update ibeacon.ts (#1099) Return type of `getAuthorizationStatus()` made more explicit. * fix(file): add missing exports (#1101) Any declaration that is not being exported is missing from the resulting d.ts declaration files. * Add InAppBrowserOptions interface to documentation. (#1103) * Update sqlite.ts (#1106) Added a bracket to remove the syntax error * update device orientation docs to reflect renaming of CompassHeading interface (#1107) * Move marker code inside MAP_READY (#1108) The code to set the camera position and marker should be moved inside the function handling MAP_READY. Otherwise they execute before the event is fired and it doesn't work. * refactor(file): accept ArrayBuffer for data to write (#1109) * docs(google-maps): fix param type closes #1110 * fix(media): add missing pauseRecord and resumeRecord methods (#1122) * docs(stripe): fix type and naming issues (#1129) * refactor(paypal): fix type of items (#1125) Type of items should be Array<PayPalItem> instead of string. * fix(serial): Serial.requestPermission() options are optional (#1128) * add success/error indices * feat(browser-tab): add browser tab plugin (#1126) * feature: added hasPermission function to Firebase fixes #1115 * feat: Implemented support for BrowserTab #1077 * docs(browser-tab): add proper docs * fix(background-geolocation): configure returns a promise closes #1118 * docs(background-geolocation): add return types and platforms * fix(contacts): allow passing asterisk as contact field type closes 1093 * fix(contacts): allow passing asterisk as contact field type closes #1093 * fix(plugin): revert changes to support stable version (#1116) fix #1001 * feat(file): add system paths * feat(app-update): add cordova-plugin-app-update support (#1105) * add new app-update plugin * update plugin info * docs(app-update): add docs * feat(alipay): add alipay support. (#1097) * add cordova-alipay-base plugin. to support Alipay payment * change ALI_PID to APP_ID, make it same with the latest SDK * rewrite comments * docs(google-maps): improve docs (#1095) Move `map.moveCamera(position);` inside the MAP_READY event. Allow to zoom the map on first launch (both iOS and Android). * fix(file): remove FileError from return type (#1086) Promises that reject with a `FileError` are not of the type `Promise<T|FileError>`, but `Promise<T>`. The previous declarations of `Promise<T|FileError>` would break typing further down the chain where you are trying to use the value that the typing says could be `T|FileError` but in reality could only be `T`. * feat(google-maps): add constant for map type * fix(file): platform Browser will raise a an DOMException (#1082) fix(File): Platform Browser will raise a an DOMException on resoleLocalFilesystemUrl and tries to write on readonly property DOMException err.message in fillErrorMessage * feat(local-notifications): support for icon background color (#1079) The Cordova plugin Ionic Natives uses allows specifying the background color of the smallIcon. By not including it in your interface you force users to use the default color for their version of Android. While the LocalNotification plugin is not well documented, it does include this feature, see Options.java line 253: ``` /** * @return * The notification background color for the small icon * Returns null, if no color is given. */ public int getColor() { String hex = options.optString("color", null); if (hex == null) { return NotificationCompat.COLOR_DEFAULT; } int aRGB = Integer.parseInt(hex, 16); return aRGB + 0xFF000000; } ``` I've simply added the option to the interface as well as a short description. This lets you go from the default color (varies by Android version): https://goo.gl/photos/nERcj4GZgapy8aee9 To any color you'd like: https://goo.gl/photos/t8V9WVba8jDU49aHA And also works if you also specify a large icon: https://goo.gl/photos/gWQYwa12djmdXfYcA * feat(unique-device-add): add UniqueDeviceId plugin (#1064) * fix plugin * feat(text-to-speech): Add stop method (#1063) https://github.com/vilic/cordova-plugin-tts/pull/32 * feat(appodeal): adds Appodeal SDK wrappers for iOS and Android (#1031) * feat(Appodeal) bootrapping * starting docs * more docs * feat(appodeal): add event Observables * feat(appodeal): replace Cordova Observable events with #.fromEvent() * feat(appodeal): update decorator metadata * feat(couchbase-lite): add CouchbaseLite cordova plugin (#1025) * feat(CouchbaseLite): add CouchbaseLite cordova plugin * add plugin url * feat(background-fetch): Adding Background Fetch requested in #990 (#1013) * Adding Background Fetch (https://github.com/transistorsoft/cordova-plugin-background-fetch) requested in #990 * Adding BackgroundFetch to index * feat(gyroscope): add Gyroscope plugin (#1004) * add gyroscope.ts to plugins * add gyroscope to index * Update gyroscope.ts * Update gyroscope.ts * Revert "fix(File): typing where `FileError` can be thrown" (#1130) * tslint and fix build issues * 2.6.0 * chore(): update changelog * fix(core): dont check if method exists when overriding fixes #1043 * fix(file): fix writeExistingFile closes #1044 * feat(diagnostic): add new methods closes #1045 * feat(background-mode): replace event listeners with on method The methods onactivate, ondeactive and onfailure no longer exist. You must now use `on` method. * feat(background-mode): add missing functions closes #1078 * tslint * set GoogleMapsMapTypeId to private * remove beta from stripe * 2.7.0 * chore(): update changelog * feat(app-preferences): added cordova-plugin-app-preferences support (#1084) * (feat) added cordova-plugin-app-preferences support * replaced callback functions with promises * updated example * (feat) added cordova-plugin-browsertab support * Revert "(feat) added cordova-plugin-browsertab support" This reverts commit 00eb5cf5d8aaac9d798f9d8450e0f35f57ffb52a. * (update) synchronize fetch * feat(photo-library): added cordova-plugin-photo-library (#1102) * feat(photo-library): added cordova-plugin-photo-library * CordovaFiniteObservable moved to photo-library. Overloads are marked as private. * refactor(photo-library): fixed circleci failing in 2.7.0 (#1132) * feat(photo-library): added cordova-plugin-photo-library * CordovaFiniteObservable moved to photo-library. Overloads are marked as private. * fixed typescript error in 2.7.0 * feat(health): add wrapper for cordova-plugin-health (#1039) * feat(health): add wrapper for cordova-plugin-health * fix(Health): add optional params to QueryOptions for .query() * docs(health): fix javadoc of interfaces * fix(health): remove unused Plugin option * docs(health): add missing documentation * doc(health): add promise to return * doc(health): remove empty lines * doc(health): Add description & reference to repo * doc(health: add "return {Promise<any>}" * refactor(safari-view-controller): hide returns promise * fix typo in ibeacon plugin (#1138) * fix(file): fix return types fixes #1139 * docs(background-geolocation): fix param docs * refactor(health): fix return types and prefix interfaces * 2.8.0 * chore(): update changelog * docs(sqlite): syntax error resolved (#1142) * Syntax error resolved The `{}` should be `[]`, but since there is no binding we do not get error. In case we add one, then the syntax will be incorrect. * Fixed a syntax error * fix(background-geolocation): configure returns an observable * docs(): update docs * 3.1.0-rc.1 * refactor(background-geolocation): update imports * docs(background-fetch): fix return type * docs(health): fix return type * chore(CI): fixing npm install instructions in generated readmes * set concurrency to number of cores * chore(): update deps * 3.1.0-rc.2 * chore(): update angular to 2.4.8 * 3.1.0-rc.3 * chore(): update angular to 2.4.8 * chore(): update rxjs to 5.0.1 * chore(): organize and enhance decorators (#1171) * fix/add decorators * fix google maps design * chore(): add root tsconfig to resolve imports in IDE * updates * more fixes * chore(): add options to InstanceCheck * chore(decorators): promise is default for Cordova/Instance check * chore(): add check decroators * docs(): update plugin docs * chore(decorators): fix cordovaCheck and instanceCheck * 3.1.0-rc.4 * chore(docs): remove gitPackage from doc generator * chore(docs): update to latest dgeni version * fix diagnostic * feat(media): create method now returns a promise Breaking change: create no longer returns a MediaObject instance. Make changes to your app accordingly. * docs update + remove any static methods/properties * remove duplicate method * remove extra docs * remove extra docs * docs(): rename plugins * chore(decorators): do not check method name on instancecheck * chore(decorators): do not check method name on cordovacheck * chore(plugin): fix pluginWarn * chore(plugin): fix pluginWarn * fix(decorators): fix InstanceCheck decorator * 3.1.0-rc.5 * chore(docs): fix readme generation * fix(transfer): fix v3 implementation * refactor(paypal): PayPal is brand name * chore(docs): replace all spaces with dashes * chore(): add dashify filter * chore(build): add aot path to core tsconfig * feat(action-sheet): add ANDROID_THEMES constant * refactor(): general cleanup (#1193) * feat(screen-orientation): update wrapper to match v2 of the plugin The whole implementation has changed now. You must update your code. * feat(stripe): add new methods * feat(linkedin): add LinkedIn plugin * 3.1.0-rc.6 * style(screen-orientation): double quote to single * tslint * refactor(pedometer): rename file to index
2017-03-21 04:38:14 +08:00
* import { Facebook, FacebookLoginResponse } from '@ionic-native/facebook';
*
chore(): merge v3-injectable into master (#1203) * feat(push): plugin is now instance based no more callbacks closes #250 * fix(push): fix typo in PushEvents enum * fix constructor * feat(push): add subscribe/unsubscribe fixes #861 * First try * Moving to modules * Removed * Moving things aroudn * tsconfig for plugins * Plugin tsconfigs * Core kind of buidls * Core * Plugin tsconfig * Test * Remove core * Build * Individual packages * Build and push * Some stuff * Bump * Update core-package.json.template * Update plugin-package.json.template * 3.0.0 * Working on injectable * Updates * Checkpoint * More stuff * Remove duplicate injectables * Remove lots of static stuff with a fancy regex * Fix build errors * chore(): nodejs build script * chore(): move fs-extra-promise to devDeps * feat(): make instance based plugins injectable * Cleanup * chore(build): convert dependencies to peer dependencies * chore(build): add auto install scripts (#1059) * feat(core): auto install scripts * minor fixes * minor fixes * remove prompt message * fix(plugins): rename packages/classes * rename google maps * gulp task to generate readme files * readme templates * automating readme file generation and adding it to CI # Conflicts: # src/@ionic-native/plugins/googlemap/index.ts # src/@ionic-native/plugins/inappbrowser/index.ts # src/@ionic-native/plugins/media/index.ts # src/@ionic-native/plugins/sqlite/index.ts * outputting readmes to dist dir instead of src * updating package name in usage instructions * chore(): ngc build * fix build * 3.0.1-0 * 3.1.0-alpha.1 * fix AoT support and add publish script * 3.1.0-alpha.2 * edit publish command * remove alpha tag * remove auto-install and cleanup * 3.1.0-alpha.3 * remove utils from publish command * refactor(): remove some prefixes * remove console logs closes #1145 * chore(): merge master into v3-injectable (#1146) * 2.5.0 * chore(): update changelog * fix(pin-dialog): add missing errorIndex * 2.5.1 * chore(): update changelog * fix(zip): progress callback is optional (#1049) * fix(apprate): add missing Windows Store option (#1072) * Update file-chooser.ts (#1071) Removed semicolon after .then() in usage instructions * docs(device-motion): update interface names (#1076) AccelerationData interface is wrongly named in docs. It should be DeviceMotionAccelerationData. And I added it to import statement. * feat(inappbrowser): add interface for IAB options (#1065) * Add InAppBrowserOptions Interface for better tooling. * feat(inappbrowser): add interface for IAB options * Add more constructor tests. * Add missing iOS options. * docs(media): update method usage (#1089) * fix(push): add the missing option clearBadge (#1087) * docs(badge): fix example (#1096) Error in code example (supplied parameters do not match call signature) * fix(imagepicker): add outputType option (#1098) * fix(facebook): fixes issue when not supplying default params (#1088) * Fix default facebook logEvent parameters * Implement correct parameters format in facebook logEvent method * Update ibeacon.ts (#1099) Return type of `getAuthorizationStatus()` made more explicit. * fix(file): add missing exports (#1101) Any declaration that is not being exported is missing from the resulting d.ts declaration files. * Add InAppBrowserOptions interface to documentation. (#1103) * Update sqlite.ts (#1106) Added a bracket to remove the syntax error * update device orientation docs to reflect renaming of CompassHeading interface (#1107) * Move marker code inside MAP_READY (#1108) The code to set the camera position and marker should be moved inside the function handling MAP_READY. Otherwise they execute before the event is fired and it doesn't work. * refactor(file): accept ArrayBuffer for data to write (#1109) * docs(google-maps): fix param type closes #1110 * fix(media): add missing pauseRecord and resumeRecord methods (#1122) * docs(stripe): fix type and naming issues (#1129) * refactor(paypal): fix type of items (#1125) Type of items should be Array<PayPalItem> instead of string. * fix(serial): Serial.requestPermission() options are optional (#1128) * add success/error indices * feat(browser-tab): add browser tab plugin (#1126) * feature: added hasPermission function to Firebase fixes #1115 * feat: Implemented support for BrowserTab #1077 * docs(browser-tab): add proper docs * fix(background-geolocation): configure returns a promise closes #1118 * docs(background-geolocation): add return types and platforms * fix(contacts): allow passing asterisk as contact field type closes 1093 * fix(contacts): allow passing asterisk as contact field type closes #1093 * fix(plugin): revert changes to support stable version (#1116) fix #1001 * feat(file): add system paths * feat(app-update): add cordova-plugin-app-update support (#1105) * add new app-update plugin * update plugin info * docs(app-update): add docs * feat(alipay): add alipay support. (#1097) * add cordova-alipay-base plugin. to support Alipay payment * change ALI_PID to APP_ID, make it same with the latest SDK * rewrite comments * docs(google-maps): improve docs (#1095) Move `map.moveCamera(position);` inside the MAP_READY event. Allow to zoom the map on first launch (both iOS and Android). * fix(file): remove FileError from return type (#1086) Promises that reject with a `FileError` are not of the type `Promise<T|FileError>`, but `Promise<T>`. The previous declarations of `Promise<T|FileError>` would break typing further down the chain where you are trying to use the value that the typing says could be `T|FileError` but in reality could only be `T`. * feat(google-maps): add constant for map type * fix(file): platform Browser will raise a an DOMException (#1082) fix(File): Platform Browser will raise a an DOMException on resoleLocalFilesystemUrl and tries to write on readonly property DOMException err.message in fillErrorMessage * feat(local-notifications): support for icon background color (#1079) The Cordova plugin Ionic Natives uses allows specifying the background color of the smallIcon. By not including it in your interface you force users to use the default color for their version of Android. While the LocalNotification plugin is not well documented, it does include this feature, see Options.java line 253: ``` /** * @return * The notification background color for the small icon * Returns null, if no color is given. */ public int getColor() { String hex = options.optString("color", null); if (hex == null) { return NotificationCompat.COLOR_DEFAULT; } int aRGB = Integer.parseInt(hex, 16); return aRGB + 0xFF000000; } ``` I've simply added the option to the interface as well as a short description. This lets you go from the default color (varies by Android version): https://goo.gl/photos/nERcj4GZgapy8aee9 To any color you'd like: https://goo.gl/photos/t8V9WVba8jDU49aHA And also works if you also specify a large icon: https://goo.gl/photos/gWQYwa12djmdXfYcA * feat(unique-device-add): add UniqueDeviceId plugin (#1064) * fix plugin * feat(text-to-speech): Add stop method (#1063) https://github.com/vilic/cordova-plugin-tts/pull/32 * feat(appodeal): adds Appodeal SDK wrappers for iOS and Android (#1031) * feat(Appodeal) bootrapping * starting docs * more docs * feat(appodeal): add event Observables * feat(appodeal): replace Cordova Observable events with #.fromEvent() * feat(appodeal): update decorator metadata * feat(couchbase-lite): add CouchbaseLite cordova plugin (#1025) * feat(CouchbaseLite): add CouchbaseLite cordova plugin * add plugin url * feat(background-fetch): Adding Background Fetch requested in #990 (#1013) * Adding Background Fetch (https://github.com/transistorsoft/cordova-plugin-background-fetch) requested in #990 * Adding BackgroundFetch to index * feat(gyroscope): add Gyroscope plugin (#1004) * add gyroscope.ts to plugins * add gyroscope to index * Update gyroscope.ts * Update gyroscope.ts * Revert "fix(File): typing where `FileError` can be thrown" (#1130) * tslint and fix build issues * 2.6.0 * chore(): update changelog * fix(core): dont check if method exists when overriding fixes #1043 * fix(file): fix writeExistingFile closes #1044 * feat(diagnostic): add new methods closes #1045 * feat(background-mode): replace event listeners with on method The methods onactivate, ondeactive and onfailure no longer exist. You must now use `on` method. * feat(background-mode): add missing functions closes #1078 * tslint * set GoogleMapsMapTypeId to private * remove beta from stripe * 2.7.0 * chore(): update changelog * feat(app-preferences): added cordova-plugin-app-preferences support (#1084) * (feat) added cordova-plugin-app-preferences support * replaced callback functions with promises * updated example * (feat) added cordova-plugin-browsertab support * Revert "(feat) added cordova-plugin-browsertab support" This reverts commit 00eb5cf5d8aaac9d798f9d8450e0f35f57ffb52a. * (update) synchronize fetch * feat(photo-library): added cordova-plugin-photo-library (#1102) * feat(photo-library): added cordova-plugin-photo-library * CordovaFiniteObservable moved to photo-library. Overloads are marked as private. * refactor(photo-library): fixed circleci failing in 2.7.0 (#1132) * feat(photo-library): added cordova-plugin-photo-library * CordovaFiniteObservable moved to photo-library. Overloads are marked as private. * fixed typescript error in 2.7.0 * feat(health): add wrapper for cordova-plugin-health (#1039) * feat(health): add wrapper for cordova-plugin-health * fix(Health): add optional params to QueryOptions for .query() * docs(health): fix javadoc of interfaces * fix(health): remove unused Plugin option * docs(health): add missing documentation * doc(health): add promise to return * doc(health): remove empty lines * doc(health): Add description & reference to repo * doc(health: add "return {Promise<any>}" * refactor(safari-view-controller): hide returns promise * fix typo in ibeacon plugin (#1138) * fix(file): fix return types fixes #1139 * docs(background-geolocation): fix param docs * refactor(health): fix return types and prefix interfaces * 2.8.0 * chore(): update changelog * docs(sqlite): syntax error resolved (#1142) * Syntax error resolved The `{}` should be `[]`, but since there is no binding we do not get error. In case we add one, then the syntax will be incorrect. * Fixed a syntax error * fix(background-geolocation): configure returns an observable * docs(): update docs * 3.1.0-rc.1 * refactor(background-geolocation): update imports * docs(background-fetch): fix return type * docs(health): fix return type * chore(CI): fixing npm install instructions in generated readmes * set concurrency to number of cores * chore(): update deps * 3.1.0-rc.2 * chore(): update angular to 2.4.8 * 3.1.0-rc.3 * chore(): update angular to 2.4.8 * chore(): update rxjs to 5.0.1 * chore(): organize and enhance decorators (#1171) * fix/add decorators * fix google maps design * chore(): add root tsconfig to resolve imports in IDE * updates * more fixes * chore(): add options to InstanceCheck * chore(decorators): promise is default for Cordova/Instance check * chore(): add check decroators * docs(): update plugin docs * chore(decorators): fix cordovaCheck and instanceCheck * 3.1.0-rc.4 * chore(docs): remove gitPackage from doc generator * chore(docs): update to latest dgeni version * fix diagnostic * feat(media): create method now returns a promise Breaking change: create no longer returns a MediaObject instance. Make changes to your app accordingly. * docs update + remove any static methods/properties * remove duplicate method * remove extra docs * remove extra docs * docs(): rename plugins * chore(decorators): do not check method name on instancecheck * chore(decorators): do not check method name on cordovacheck * chore(plugin): fix pluginWarn * chore(plugin): fix pluginWarn * fix(decorators): fix InstanceCheck decorator * 3.1.0-rc.5 * chore(docs): fix readme generation * fix(transfer): fix v3 implementation * refactor(paypal): PayPal is brand name * chore(docs): replace all spaces with dashes * chore(): add dashify filter * chore(build): add aot path to core tsconfig * feat(action-sheet): add ANDROID_THEMES constant * refactor(): general cleanup (#1193) * feat(screen-orientation): update wrapper to match v2 of the plugin The whole implementation has changed now. You must update your code. * feat(stripe): add new methods * feat(linkedin): add LinkedIn plugin * 3.1.0-rc.6 * style(screen-orientation): double quote to single * tslint * refactor(pedometer): rename file to index
2017-03-21 04:38:14 +08:00
* constructor(private fb: Facebook) { }
*
* ...
*
* this.fb.login(['public_profile', 'user_friends', 'email'])
* .then((res: FacebookLoginResponse) => console.log('Logged into Facebook!', res))
* .catch(e => console.log('Error logging into Facebook', e));
*
*
* this.fb.logEvent(this.fb.EVENTS.EVENT_NAME_ADDED_TO_CART);
*
* ```
*
2016-02-13 08:06:42 +08:00
*/
2015-12-01 12:15:21 +08:00
@Plugin({
pluginName: 'Facebook',
2015-12-01 12:15:21 +08:00
plugin: 'cordova-plugin-facebook4',
pluginRef: 'facebookConnectPlugin',
repo: 'https://github.com/jeduan/cordova-plugin-facebook4',
install: 'ionic cordova plugin add cordova-plugin-facebook4 --variable APP_ID="123456789" --variable APP_NAME="myApplication"',
2017-03-28 20:24:04 +08:00
installVariables: ['APP_ID', 'APP_NAME'],
platforms: ['Android', 'iOS', 'Browser']
2015-12-01 12:15:21 +08:00
})
chore(): merge v3-injectable into master (#1203) * feat(push): plugin is now instance based no more callbacks closes #250 * fix(push): fix typo in PushEvents enum * fix constructor * feat(push): add subscribe/unsubscribe fixes #861 * First try * Moving to modules * Removed * Moving things aroudn * tsconfig for plugins * Plugin tsconfigs * Core kind of buidls * Core * Plugin tsconfig * Test * Remove core * Build * Individual packages * Build and push * Some stuff * Bump * Update core-package.json.template * Update plugin-package.json.template * 3.0.0 * Working on injectable * Updates * Checkpoint * More stuff * Remove duplicate injectables * Remove lots of static stuff with a fancy regex * Fix build errors * chore(): nodejs build script * chore(): move fs-extra-promise to devDeps * feat(): make instance based plugins injectable * Cleanup * chore(build): convert dependencies to peer dependencies * chore(build): add auto install scripts (#1059) * feat(core): auto install scripts * minor fixes * minor fixes * remove prompt message * fix(plugins): rename packages/classes * rename google maps * gulp task to generate readme files * readme templates * automating readme file generation and adding it to CI # Conflicts: # src/@ionic-native/plugins/googlemap/index.ts # src/@ionic-native/plugins/inappbrowser/index.ts # src/@ionic-native/plugins/media/index.ts # src/@ionic-native/plugins/sqlite/index.ts * outputting readmes to dist dir instead of src * updating package name in usage instructions * chore(): ngc build * fix build * 3.0.1-0 * 3.1.0-alpha.1 * fix AoT support and add publish script * 3.1.0-alpha.2 * edit publish command * remove alpha tag * remove auto-install and cleanup * 3.1.0-alpha.3 * remove utils from publish command * refactor(): remove some prefixes * remove console logs closes #1145 * chore(): merge master into v3-injectable (#1146) * 2.5.0 * chore(): update changelog * fix(pin-dialog): add missing errorIndex * 2.5.1 * chore(): update changelog * fix(zip): progress callback is optional (#1049) * fix(apprate): add missing Windows Store option (#1072) * Update file-chooser.ts (#1071) Removed semicolon after .then() in usage instructions * docs(device-motion): update interface names (#1076) AccelerationData interface is wrongly named in docs. It should be DeviceMotionAccelerationData. And I added it to import statement. * feat(inappbrowser): add interface for IAB options (#1065) * Add InAppBrowserOptions Interface for better tooling. * feat(inappbrowser): add interface for IAB options * Add more constructor tests. * Add missing iOS options. * docs(media): update method usage (#1089) * fix(push): add the missing option clearBadge (#1087) * docs(badge): fix example (#1096) Error in code example (supplied parameters do not match call signature) * fix(imagepicker): add outputType option (#1098) * fix(facebook): fixes issue when not supplying default params (#1088) * Fix default facebook logEvent parameters * Implement correct parameters format in facebook logEvent method * Update ibeacon.ts (#1099) Return type of `getAuthorizationStatus()` made more explicit. * fix(file): add missing exports (#1101) Any declaration that is not being exported is missing from the resulting d.ts declaration files. * Add InAppBrowserOptions interface to documentation. (#1103) * Update sqlite.ts (#1106) Added a bracket to remove the syntax error * update device orientation docs to reflect renaming of CompassHeading interface (#1107) * Move marker code inside MAP_READY (#1108) The code to set the camera position and marker should be moved inside the function handling MAP_READY. Otherwise they execute before the event is fired and it doesn't work. * refactor(file): accept ArrayBuffer for data to write (#1109) * docs(google-maps): fix param type closes #1110 * fix(media): add missing pauseRecord and resumeRecord methods (#1122) * docs(stripe): fix type and naming issues (#1129) * refactor(paypal): fix type of items (#1125) Type of items should be Array<PayPalItem> instead of string. * fix(serial): Serial.requestPermission() options are optional (#1128) * add success/error indices * feat(browser-tab): add browser tab plugin (#1126) * feature: added hasPermission function to Firebase fixes #1115 * feat: Implemented support for BrowserTab #1077 * docs(browser-tab): add proper docs * fix(background-geolocation): configure returns a promise closes #1118 * docs(background-geolocation): add return types and platforms * fix(contacts): allow passing asterisk as contact field type closes 1093 * fix(contacts): allow passing asterisk as contact field type closes #1093 * fix(plugin): revert changes to support stable version (#1116) fix #1001 * feat(file): add system paths * feat(app-update): add cordova-plugin-app-update support (#1105) * add new app-update plugin * update plugin info * docs(app-update): add docs * feat(alipay): add alipay support. (#1097) * add cordova-alipay-base plugin. to support Alipay payment * change ALI_PID to APP_ID, make it same with the latest SDK * rewrite comments * docs(google-maps): improve docs (#1095) Move `map.moveCamera(position);` inside the MAP_READY event. Allow to zoom the map on first launch (both iOS and Android). * fix(file): remove FileError from return type (#1086) Promises that reject with a `FileError` are not of the type `Promise<T|FileError>`, but `Promise<T>`. The previous declarations of `Promise<T|FileError>` would break typing further down the chain where you are trying to use the value that the typing says could be `T|FileError` but in reality could only be `T`. * feat(google-maps): add constant for map type * fix(file): platform Browser will raise a an DOMException (#1082) fix(File): Platform Browser will raise a an DOMException on resoleLocalFilesystemUrl and tries to write on readonly property DOMException err.message in fillErrorMessage * feat(local-notifications): support for icon background color (#1079) The Cordova plugin Ionic Natives uses allows specifying the background color of the smallIcon. By not including it in your interface you force users to use the default color for their version of Android. While the LocalNotification plugin is not well documented, it does include this feature, see Options.java line 253: ``` /** * @return * The notification background color for the small icon * Returns null, if no color is given. */ public int getColor() { String hex = options.optString("color", null); if (hex == null) { return NotificationCompat.COLOR_DEFAULT; } int aRGB = Integer.parseInt(hex, 16); return aRGB + 0xFF000000; } ``` I've simply added the option to the interface as well as a short description. This lets you go from the default color (varies by Android version): https://goo.gl/photos/nERcj4GZgapy8aee9 To any color you'd like: https://goo.gl/photos/t8V9WVba8jDU49aHA And also works if you also specify a large icon: https://goo.gl/photos/gWQYwa12djmdXfYcA * feat(unique-device-add): add UniqueDeviceId plugin (#1064) * fix plugin * feat(text-to-speech): Add stop method (#1063) https://github.com/vilic/cordova-plugin-tts/pull/32 * feat(appodeal): adds Appodeal SDK wrappers for iOS and Android (#1031) * feat(Appodeal) bootrapping * starting docs * more docs * feat(appodeal): add event Observables * feat(appodeal): replace Cordova Observable events with #.fromEvent() * feat(appodeal): update decorator metadata * feat(couchbase-lite): add CouchbaseLite cordova plugin (#1025) * feat(CouchbaseLite): add CouchbaseLite cordova plugin * add plugin url * feat(background-fetch): Adding Background Fetch requested in #990 (#1013) * Adding Background Fetch (https://github.com/transistorsoft/cordova-plugin-background-fetch) requested in #990 * Adding BackgroundFetch to index * feat(gyroscope): add Gyroscope plugin (#1004) * add gyroscope.ts to plugins * add gyroscope to index * Update gyroscope.ts * Update gyroscope.ts * Revert "fix(File): typing where `FileError` can be thrown" (#1130) * tslint and fix build issues * 2.6.0 * chore(): update changelog * fix(core): dont check if method exists when overriding fixes #1043 * fix(file): fix writeExistingFile closes #1044 * feat(diagnostic): add new methods closes #1045 * feat(background-mode): replace event listeners with on method The methods onactivate, ondeactive and onfailure no longer exist. You must now use `on` method. * feat(background-mode): add missing functions closes #1078 * tslint * set GoogleMapsMapTypeId to private * remove beta from stripe * 2.7.0 * chore(): update changelog * feat(app-preferences): added cordova-plugin-app-preferences support (#1084) * (feat) added cordova-plugin-app-preferences support * replaced callback functions with promises * updated example * (feat) added cordova-plugin-browsertab support * Revert "(feat) added cordova-plugin-browsertab support" This reverts commit 00eb5cf5d8aaac9d798f9d8450e0f35f57ffb52a. * (update) synchronize fetch * feat(photo-library): added cordova-plugin-photo-library (#1102) * feat(photo-library): added cordova-plugin-photo-library * CordovaFiniteObservable moved to photo-library. Overloads are marked as private. * refactor(photo-library): fixed circleci failing in 2.7.0 (#1132) * feat(photo-library): added cordova-plugin-photo-library * CordovaFiniteObservable moved to photo-library. Overloads are marked as private. * fixed typescript error in 2.7.0 * feat(health): add wrapper for cordova-plugin-health (#1039) * feat(health): add wrapper for cordova-plugin-health * fix(Health): add optional params to QueryOptions for .query() * docs(health): fix javadoc of interfaces * fix(health): remove unused Plugin option * docs(health): add missing documentation * doc(health): add promise to return * doc(health): remove empty lines * doc(health): Add description & reference to repo * doc(health: add "return {Promise<any>}" * refactor(safari-view-controller): hide returns promise * fix typo in ibeacon plugin (#1138) * fix(file): fix return types fixes #1139 * docs(background-geolocation): fix param docs * refactor(health): fix return types and prefix interfaces * 2.8.0 * chore(): update changelog * docs(sqlite): syntax error resolved (#1142) * Syntax error resolved The `{}` should be `[]`, but since there is no binding we do not get error. In case we add one, then the syntax will be incorrect. * Fixed a syntax error * fix(background-geolocation): configure returns an observable * docs(): update docs * 3.1.0-rc.1 * refactor(background-geolocation): update imports * docs(background-fetch): fix return type * docs(health): fix return type * chore(CI): fixing npm install instructions in generated readmes * set concurrency to number of cores * chore(): update deps * 3.1.0-rc.2 * chore(): update angular to 2.4.8 * 3.1.0-rc.3 * chore(): update angular to 2.4.8 * chore(): update rxjs to 5.0.1 * chore(): organize and enhance decorators (#1171) * fix/add decorators * fix google maps design * chore(): add root tsconfig to resolve imports in IDE * updates * more fixes * chore(): add options to InstanceCheck * chore(decorators): promise is default for Cordova/Instance check * chore(): add check decroators * docs(): update plugin docs * chore(decorators): fix cordovaCheck and instanceCheck * 3.1.0-rc.4 * chore(docs): remove gitPackage from doc generator * chore(docs): update to latest dgeni version * fix diagnostic * feat(media): create method now returns a promise Breaking change: create no longer returns a MediaObject instance. Make changes to your app accordingly. * docs update + remove any static methods/properties * remove duplicate method * remove extra docs * remove extra docs * docs(): rename plugins * chore(decorators): do not check method name on instancecheck * chore(decorators): do not check method name on cordovacheck * chore(plugin): fix pluginWarn * chore(plugin): fix pluginWarn * fix(decorators): fix InstanceCheck decorator * 3.1.0-rc.5 * chore(docs): fix readme generation * fix(transfer): fix v3 implementation * refactor(paypal): PayPal is brand name * chore(docs): replace all spaces with dashes * chore(): add dashify filter * chore(build): add aot path to core tsconfig * feat(action-sheet): add ANDROID_THEMES constant * refactor(): general cleanup (#1193) * feat(screen-orientation): update wrapper to match v2 of the plugin The whole implementation has changed now. You must update your code. * feat(stripe): add new methods * feat(linkedin): add LinkedIn plugin * 3.1.0-rc.6 * style(screen-orientation): double quote to single * tslint * refactor(pedometer): rename file to index
2017-03-21 04:38:14 +08:00
@Injectable()
export class Facebook extends IonicNativePlugin {
EVENTS: {
EVENT_NAME_ACTIVATED_APP: 'fb_mobile_activate_app',
EVENT_NAME_DEACTIVATED_APP: 'fb_mobile_deactivate_app',
EVENT_NAME_SESSION_INTERRUPTIONS: 'fb_mobile_app_interruptions',
EVENT_NAME_TIME_BETWEEN_SESSIONS: 'fb_mobile_time_between_sessions',
EVENT_NAME_COMPLETED_REGISTRATION: 'fb_mobile_complete_registration',
EVENT_NAME_VIEWED_CONTENT: 'fb_mobile_content_view',
EVENT_NAME_SEARCHED: 'fb_mobile_search',
EVENT_NAME_RATED: 'fb_mobile_rate',
EVENT_NAME_COMPLETED_TUTORIAL: 'fb_mobile_tutorial_completion',
EVENT_NAME_PUSH_TOKEN_OBTAINED: 'fb_mobile_obtain_push_token',
EVENT_NAME_ADDED_TO_CART: 'fb_mobile_add_to_cart',
EVENT_NAME_ADDED_TO_WISHLIST: 'fb_mobile_add_to_wishlist',
EVENT_NAME_INITIATED_CHECKOUT: 'fb_mobile_initiated_checkout',
EVENT_NAME_ADDED_PAYMENT_INFO: 'fb_mobile_add_payment_info',
EVENT_NAME_PURCHASED: 'fb_mobile_purchase',
EVENT_NAME_ACHIEVED_LEVEL: 'fb_mobile_level_achieved',
EVENT_NAME_UNLOCKED_ACHIEVEMENT: 'fb_mobile_achievement_unlocked',
EVENT_NAME_SPENT_CREDITS: 'fb_mobile_spent_credits',
EVENT_PARAM_CURRENCY: 'fb_currency',
EVENT_PARAM_REGISTRATION_METHOD: 'fb_registration_method',
EVENT_PARAM_CONTENT_TYPE: 'fb_content_type',
EVENT_PARAM_CONTENT_ID: 'fb_content_id',
EVENT_PARAM_SEARCH_STRING: 'fb_search_string',
EVENT_PARAM_SUCCESS: 'fb_success',
EVENT_PARAM_MAX_RATING_VALUE: 'fb_max_rating_value',
EVENT_PARAM_PAYMENT_INFO_AVAILABLE: 'fb_payment_info_available',
EVENT_PARAM_NUM_ITEMS: 'fb_num_items',
EVENT_PARAM_LEVEL: 'fb_level',
EVENT_PARAM_DESCRIPTION: 'fb_description',
EVENT_PARAM_SOURCE_APPLICATION: 'fb_mobile_launch_source',
EVENT_PARAM_VALUE_YES: '1',
EVENT_PARAM_VALUE_NO: '0'
};
2016-02-13 08:06:42 +08:00
/**
* Login to Facebook to authenticate this app.
*
* ```typescript
2016-02-13 08:06:42 +08:00
* {
* status: 'connected',
2016-02-13 08:06:42 +08:00
* authResponse: {
* session_key: true,
* accessToken: 'kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn',
2016-02-13 08:06:42 +08:00
* expiresIn: 5183979,
* sig: '...',
* secret: '...',
* userID: '634565435'
2016-02-13 08:06:42 +08:00
* }
* }
*
2016-02-13 08:06:42 +08:00
* ```
*
* @param {string[]} permissions List of [permissions](https://developers.facebook.com/docs/facebook-login/permissions) this app has upon logging in.
* @returns {Promise<FacebookLoginResponse>} Returns a Promise that resolves with a status object if login succeeds, and rejects if login fails.
2016-02-13 08:06:42 +08:00
*/
2015-12-01 12:15:21 +08:00
@Cordova()
login(permissions: string[]): Promise<FacebookLoginResponse> { return; }
2015-12-01 12:15:21 +08:00
2016-02-13 08:06:42 +08:00
/**
* Logout of Facebook.
*
* For more info see the [Facebook docs](https://developers.facebook.com/docs/reference/javascript/FB.logout)
* @returns {Promise<any>} Returns a Promise that resolves on a successful logout, and rejects if logout fails.
2016-02-13 08:06:42 +08:00
*/
2015-12-01 12:15:21 +08:00
@Cordova()
logout(): Promise<any> { return; }
2015-12-01 12:15:21 +08:00
2016-02-13 08:06:42 +08:00
/**
* Determine if a user is logged in to Facebook and has authenticated your app. There are three possible states for a user:
*
* 1) the user is logged into Facebook and has authenticated your application (connected)
* 2) the user is logged into Facebook but has not authenticated your application (not_authorized)
* 3) the user is either not logged into Facebook or explicitly logged out of your application so it doesn't attempt to connect to Facebook and thus, we don't know if they've authenticated your application or not (unknown)
*
* Resolves with a response like:
*
* ```
* {
* authResponse: {
* userID: '12345678912345',
* accessToken: 'kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn',
2016-02-13 08:06:42 +08:00
* session_Key: true,
* expiresIn: '5183738',
* sig: '...'
2016-02-13 08:06:42 +08:00
* },
* status: 'connected'
2016-02-13 08:06:42 +08:00
* }
* ```
*
* For more information see the [Facebook docs](https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus)
*
* @returns {Promise<any>} Returns a Promise that resolves with a status, or rejects with an error
2016-02-13 08:06:42 +08:00
*/
2015-12-01 12:15:21 +08:00
@Cordova()
getLoginStatus(): Promise<any> { return; }
2015-12-01 12:15:21 +08:00
2016-02-13 08:06:42 +08:00
/**
* Get a Facebook access token for using Facebook services.
*
* @returns {Promise<string>} Returns a Promise that resolves with an access token, or rejects with an error
2016-02-13 08:06:42 +08:00
*/
2015-12-01 12:15:21 +08:00
@Cordova()
getAccessToken(): Promise<string> { return; }
2015-12-01 12:15:21 +08:00
2016-02-13 08:06:42 +08:00
/**
* Show one of various Facebook dialogs. Example of options for a Share dialog:
*
* ```
* {
* method: 'share',
* href: 'http://example.com',
* caption: 'Such caption, very feed.',
* description: 'Much description',
2016-02-13 08:06:42 +08:00
* picture: 'http://example.com/image.png'
* }
* ```
*
* For more options see the [Cordova plugin docs](https://github.com/jeduan/cordova-plugin-facebook4#show-a-dialog) and the [Facebook docs](https://developers.facebook.com/docs/javascript/reference/FB.ui)
* @param {Object} options The dialog options
* @returns {Promise<any>} Returns a Promise that resolves with success data, or rejects with an error
2016-02-13 08:06:42 +08:00
*/
2015-12-01 12:15:21 +08:00
@Cordova()
showDialog(options: any): Promise<any> { return; }
2015-12-01 12:15:21 +08:00
2016-02-13 08:06:42 +08:00
/**
* Make a call to Facebook Graph API. Can take additional permissions beyond those granted on login.
*
* For more information see:
*
* Calling the Graph API - https://developers.facebook.com/docs/javascript/reference/FB.api
* Graph Explorer - https://developers.facebook.com/tools/explorer
* Graph API - https://developers.facebook.com/docs/graph-api
*
* @param {string} requestPath Graph API endpoint you want to call
* @param {string[]} permissions List of [permissions](https://developers.facebook.com/docs/facebook-login/permissions) for this request.
* @returns {Promise<any>} Returns a Promise that resolves with the result of the request, or rejects with an error
2016-02-13 08:06:42 +08:00
*/
2015-12-01 12:15:21 +08:00
@Cordova()
api(requestPath: string, permissions: string[]): Promise<any> { return; }
2015-12-01 12:15:21 +08:00
2016-02-13 08:06:42 +08:00
/**
* Log an event. For more information see the Events section above.
*
* @param {string} name Name of the event
* @param {Object} [params] An object containing extra data to log with the event
* @param {number} [valueToSum] any value to be added to added to a sum on each event
* @returns {Promise<any>}
2016-02-13 08:06:42 +08:00
*/
@Cordova({
successIndex: 3,
errorIndex: 4
})
logEvent(name: string, params?: Object, valueToSum?: number): Promise<any> { return; }
2015-12-01 12:15:21 +08:00
2016-02-13 08:06:42 +08:00
/**
* Log a purchase. For more information see the Events section above.
*
* @param {number} value Value of the purchase.
* @param {string} currency The currency, as an [ISO 4217 currency code](http://en.wikipedia.org/wiki/ISO_4217)
* @returns {Promise<any>}
2016-02-13 08:06:42 +08:00
*/
2015-12-01 12:15:21 +08:00
@Cordova()
logPurchase(value: number, currency: string): Promise<any> { return; }
2015-12-01 12:15:21 +08:00
}