merge master into v5

This commit is contained in:
Daniel
2018-08-16 22:43:50 +02:00
parent 2f560d619a
commit f2728f26fe
18 changed files with 1846 additions and 130 deletions
@@ -0,0 +1,592 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
declare var clevertap: any;
/**
* @name CleverTap
* @description
* Cordova Plugin that wraps CleverTap SDK for Android and iOS
*
* @usage
* ```typescript
* import { CleverTap } from '@ionic-native/clevertap';
* constructor(private clevertap: CleverTap) { }
*
* ```
*/
@Plugin({
pluginName: 'CleverTap',
plugin: 'clevertap-cordova',
pluginRef: 'CleverTap',
repo: 'https://github.com/CleverTap/clevertap-cordova',
platforms: ['Android', 'iOS']
})
@Injectable()
export class CleverTap extends IonicNativePlugin {
/**
* notify device ready
* NOTE: in iOS use to be notified of launch Push Notification or Deep Link
* in Android use only in android phonegap build projects
* @returns {Promise<any>}
*/
@Cordova()
notifyDeviceReady(): Promise<any> {
return;
}
/*******************
* Personalization
******************/
/**
* Personalization
* Enables the Personalization API
* @returns {Promise<any>}
*/
@Cordova()
enablePersonalization(): Promise<any> {
return;
}
/**
* Enables tracking opt out for the currently active user.
* @param optOut {boolean}
* @returns {Promise<any>}
*/
@Cordova()
setOptOut(optOut: boolean): Promise<any> {
return;
}
/**
* Enables the reporting of device network related information, including IP address. This reporting is disabled by default.
* @param enable {boolean}
* @returns {Promise<any>}
*/
@Cordova()
enableDeviceNetworkInfoReporting(enable: boolean): Promise<any> {
return;
}
/*******************
* Push
******************/
/**
* Registers for push notifications
* @returns {Promise<any>}
*/
@Cordova()
registerPush(): Promise<any> {
return;
}
/**
* Sets the device's push token
* @param token {string}
* @returns {Promise<any>}
*/
@Cordova()
setPushToken(token: string): Promise<any> {
return;
}
/**
* Create Notification Channel for Android O+
* @param channelID {string}
* @param channelName {string}
* @param channelDescription {string}
* @param importance {number}
* @param showBadge {boolean}
* @returns {Promise<any>}
*/
@Cordova()
createNotificationChannel(
channelID: string,
channelName: string,
channelDescription: string,
importance: number,
showBadge: boolean
): Promise<any> {
return;
}
/**
* Create Notification Channel for Android O+
* @param channelID {string}
* @param channelName {string}
* @param channelDescription {string}
* @param importance {number}
* @param showBadge {boolean}
* @param sound {string}
* @returns {Promise<any>}
*/
@Cordova()
createNotificationChannelWithSound(
channelID: string,
channelName: string,
channelDescription: string,
importance: number,
showBadge: boolean,
sound: string
): Promise<any> {
return;
}
/**
* Create Notification Channel with Group ID for Android O+
* @param channelID {string}
* @param channelName {string}
* @param channelDescription {string}
* @param importance {number}
* @param groupId {string}
* @param showBadge {boolean}
* @param sound {string}
* @returns {Promise<any>}
*/
@Cordova()
createNotificationChannelWithGroupId(
channelID: string,
channelName: string,
channelDescription: string,
importance: number,
groupId: string,
showBadge: boolean
): Promise<any> {
return;
}
/**
* Create Notification Channel with Group ID for Android O+
* @param channelID {string}
* @param channelName {string}
* @param channelDescription {string}
* @param importance {number}
* @param groupId {string}
* @param showBadge {boolean}
* @returns {Promise<any>}
*/
@Cordova()
createNotificationChannelWithGroupIdAndSound(
channelID: string,
channelName: string,
channelDescription: string,
importance: number,
groupId: string,
showBadge: boolean,
sound: string
): Promise<any> {
return;
}
/**
* Create Notification Channel Group for Android O+
* @param groupID {string}
* @param groupName {string}
* @returns {Promise<any>}
*/
@Cordova()
createNotificationChannelGroup(
groupID: string,
groupName: string
): Promise<any> {
return;
}
/**
* Delete Notification Channel for Android O+
* @param channelID {string}
* @returns {Promise<any>}
*/
@Cordova()
deleteNotificationChannel(channelID: string): Promise<any> {
return;
}
/**
* Delete Notification Group for Android O+
* @param groupID {string}
* @returns {Promise<any>}
*/
@Cordova()
deleteNotificationChannelGroup(groupID: string): Promise<any> {
return;
}
/*******************
* Events
******************/
/**
* Record Screen View
* @param screenName {string}
* @returns {Promise<any>}
*/
@Cordova()
recordScreenView(screenName: string): Promise<any> {
return;
}
/**
* Record Event with Name
* @param eventName {string}
* @returns {Promise<any>}
*/
@Cordova()
recordEventWithName(eventName: string): Promise<any> {
return;
}
/**
* Record Event with Name and Event properties
* @param eventName {string}
* @param eventProps {any}
* @returns {Promise<any>}
*/
@Cordova()
recordEventWithNameAndProps(
eventName: string,
eventProps: any
): Promise<any> {
return;
}
/**
* Record Charged Event with Details and Items
* @param details {any} object with transaction details
* @param items {any} array of items purchased
* @returns {Promise<any>}
*/
@Cordova()
recordChargedEventWithDetailsAndItems(
details: any,
items: any
): Promise<any> {
return;
}
/**
* Get Event First Time
* @param eventName {string}
* callback returns epoch seconds or -1
* @returns {Promise<any>}
*/
@Cordova()
eventGetFirstTime(eventName: string): Promise<any> {
return;
}
/**
* Get Event Last Time
* @param eventName {string}
* callback returns epoch seconds or -1
* @returns {Promise<any>}
*/
@Cordova()
eventGetLastTime(eventName: string): Promise<any> {
return;
}
/**
* Get Event Number of Occurrences
* @param eventName {string}
* calls back with int or -1
* @returns {Promise<any>}
*/
@Cordova()
eventGetOccurrences(eventName: string): Promise<any> {
return;
}
/**
* Get Event Details
* @param eventName {string}
* calls back with object {"eventName": <string>, "firstTime":<epoch seconds>, "lastTime": <epoch seconds>, "count": <int>} or empty object
* @returns {Promise<any>}
*/
@Cordova()
eventGetDetails(eventName: string): Promise<any> {
return;
}
/**
* Get Event History
* calls back with object {"eventName1":<event1 details object>, "eventName2":<event2 details object>}
* @returns {Promise<any>}
*/
@Cordova()
getEventHistory(): Promise<any> {
return;
}
/*******************
* Profiles
******************/
/**
* Get the device location if available.
* On iOS:
* Calling this will prompt the user location permissions dialog.
* Please be sure to include the NSLocationWhenInUseUsageDescription key in your Info.plist.
* Uses desired accuracy of kCLLocationAccuracyHundredMeters.
* If you need background location updates or finer accuracy please implement your own location handling.
* On Android:
* Requires Location Permission in AndroidManifest e.g. "android.permission.ACCESS_COARSE_LOCATION"
* You can use location to pass it to CleverTap via the setLocation API
* for, among other things, more fine-grained geo-targeting and segmentation purposes.
* Note: on iOS the call to CleverTapSDK must be made on the main thread due to LocationManager restrictions, but the CleverTapSDK method itself is non-blocking.
* calls back with {lat:lat, lon:lon} lat and lon are floats
* @returns {Promise<any>}
*/
@Cordova()
getLocation(): Promise<any> {
return;
}
/**
* Set location
* @param lat {number}
* @param lon {number}
* @returns {Promise<any>}
*/
@Cordova()
setLocation(lat: number, lon: number): Promise<any> {
return;
}
/**
* Creates a separate and distinct user profile identified by one or more of Identity, Email, FBID or GPID values,
* and populated with the key-values included in the profile dictionary.
* If your app is used by multiple users, you can use this method to assign them each a unique profile to track them separately.
* If instead you wish to assign multiple Identity, Email, FBID and/or GPID values to the same user profile,
* use profileSet rather than this method.
* If none of Identity, Email, FBID or GPID is included in the profile dictionary,
* all properties values will be associated with the current user profile.
* When initially installed on this device, your app is assigned an "anonymous" profile.
* The first time you identify a user on this device (whether via onUserLogin or profileSet),
* the "anonymous" history on the device will be associated with the newly identified user.
* Then, use this method to switch between subsequent separate identified users.
* Please note that switching from one identified user to another is a costly operation
* in that the current session for the previous user is automatically closed
* and data relating to the old user removed, and a new session is started
* for the new user and data for that user refreshed via a network call to CleverTap.
* In addition, any global frequency caps are reset as part of the switch.
* @param profile {any} object
* @returns {Promise<any>}
*/
@Cordova()
onUserLogin(profile: any): Promise<any> {
return;
}
/**
* Set profile attributes
* @param profile {any} object
* @returns {Promise<any>}
*/
@Cordova()
profileSet(profile: any): Promise<any> {
return;
}
/**
* Set profile attributes from facebook user
* @param profile {any} facebook graph user object
* @returns {Promise<any>}
*/
@Cordova()
profileSetGraphUser(profile: any): Promise<any> {
return;
}
/**
* Set profile attributes rom google plus user
* @param profile {any} google plus user object
* @returns {Promise<any>}
*/
@Cordova()
profileGooglePlusUser(profile: any): Promise<any> {
return;
}
/**
* Get User Profile Property
* @param propertyName {string}
* calls back with value of propertyName or false
* @returns {Promise<any>}
*/
@Cordova()
profileGetProperty(propertyName: string): Promise<any> {
return;
}
/**
* Get a unique CleverTap identifier suitable for use with install attribution providers.
* calls back with unique CleverTap attribution identifier
* @returns {Promise<any>}
*/
@Cordova()
profileGetCleverTapAttributionIdentifier(): Promise<any> {
return;
}
/**
* Get User Profile CleverTapID
* calls back with CleverTapID or false
* @returns {Promise<any>}
*/
@Cordova()
profileGetCleverTapID(): Promise<any> {
return;
}
/**
* Remove the property specified by key from the user profile
* @param key {string}
* @returns {Promise<any>}
*/
@Cordova()
profileRemoveValueForKey(key: string): Promise<any> {
return;
}
/**
* Method for setting a multi-value user profile property
* @param key {string}
* @param values {any} array of strings
* @returns {Promise<any>}
*/
@Cordova()
profileSetMultiValues(key: string, values: any): Promise<any> {
return;
}
/**
* Method for adding a value to a multi-value user profile property
* @param key {string}
* @param value {string}
* @returns {Promise<any>}
*/
@Cordova()
profileAddMultiValue(key: string, value: string): Promise<any> {
return;
}
/**
* Method for adding values to a multi-value user profile property
* @param key {string}
* @param values {any} array of strings
* @returns {Promise<any>}
*/
@Cordova()
profileAddMultiValues(key: string, values: any): Promise<any> {
return;
}
/**
* Method for removing a value from a multi-value user profile property
* @param key {string}
* @param value {string}
* @returns {Promise<any>}
*/
@Cordova()
profileRemoveMultiValue(key: string, value: string): Promise<any> {
return;
}
/**
* Method for removing a value from a multi-value user profile property
* @param key {string}
* @param values {any} array of strings
* @returns {Promise<any>}
*/
@Cordova()
profileRemoveMultiValues(key: string, values: any): Promise<any> {
return;
}
/*******************
* Session
******************/
/**
* Get Session Elapsed Time
* calls back with seconds
* @returns {Promise<any>}
*/
@Cordova()
sessionGetTimeElapsed(): Promise<any> {
return;
}
/**
* Get Session Total Visits
* calls back with with int or -1
* @returns {Promise<any>}
*/
@Cordova()
sessionGetTotalVisits(): Promise<any> {
return;
}
/**
* Get Session Screen Count
* calls back with with int
* @returns {Promise<any>}
*/
@Cordova()
sessionGetScreenCount(): Promise<any> {
return;
}
/**
* Get Session Previous Visit Time
* calls back with with epoch seconds or -1
* @returns {Promise<any>}
*/
@Cordova()
sessionGetPreviousVisitTime(): Promise<any> {
return;
}
/**
* Get Sesssion Referrer UTM details
* object {"source": <string>, "medium": <string>, "campaign": <string>} or empty object
* @returns {Promise<any>}
*/
@Cordova()
sessionGetUTMDetails(): Promise<any> {
return;
}
/**
* Call this to manually track the utm details for an incoming install referrer
* @param source {string}
* @param medium {string}
* @param campaign {string}
* @returns {Promise<any>}
*/
@Cordova()
pushInstallReferrer(
source: string,
medium: string,
campaign: string
): Promise<any> {
return;
}
/*******************
* Developer Options
******************/
/**
* 0 is off, 1 is info, 2 is debug, default is 1
* @param level {number}
* @returns {Promise<any>}
*/
@Cordova()
setDebugLevel(level: number): Promise<any> {
return;
}
}
@@ -4,7 +4,11 @@ import { CordovaProperty, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name Extended Device Information
* @description
* Retrieves additional device information that is not provided by other plugins
* Retrieves additional device information from the Device Hardware
* - memory
* - cpumhz
* - totalstorage
* - freestorage
*
* @usage
* ```typescript
@@ -22,12 +26,12 @@ import { CordovaProperty, IonicNativePlugin, Plugin } from '@ionic-native/core';
pluginName: 'ExtendedDeviceInformation',
plugin: 'cordova-plugin-extended-device-information',
pluginRef: 'extended-device-information',
repo: 'https://github.com/danielehrhardt/cordova-plugin-extended-device-information',
repo:
'https://github.com/danielehrhardt/cordova-plugin-extended-device-information',
platforms: ['Android']
})
@Injectable()
export class ExtendedDeviceInformation extends IonicNativePlugin {
/**
* Get the device's memory size
*/
@@ -46,4 +50,9 @@ export class ExtendedDeviceInformation extends IonicNativePlugin {
@CordovaProperty()
totalstorage: string;
/**
* Get the total storage
*/
@CordovaProperty
freestorage: number;
}
+425
View File
@@ -0,0 +1,425 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface Attributes {
[index: string]: String;
}
/**
* @name Crashlytics
* @description
* API for interacting with the Crashlytics kit.
*
* https://docs.fabric.io/crashlytics/index.html
*
* @usage
* ```typescript
* import { Crashlytics } from '@ionic-native/fabric';
*
*
* constructor(private crashlytics: Crashlytics) { }
*
* ...
*
* try {
* await this.loadData();
* } catch (e) {
* this.crashlytics.addLog("Error while loading data");
* this.crashlytics.sendNonFatalCrash(e.message || e);
* }
*
* ```
*/
@Plugin({
pluginName: 'Crashlytics',
plugin: 'cordova-fabric-plugin',
pluginRef: 'window.fabric.Crashlytics',
repo: 'https://www.npmjs.com/package/cordova-fabric-plugin',
install:
'ionic cordova plugin add cordova-fabric-plugin --variable FABRIC_API_KEY=XXX --variable FABRIC_API_SECRET=xxx',
installVariables: ['FABRIC_API_KEY', 'FABRIC_API_SECRET'],
platforms: ['Android', 'iOS']
})
@Injectable()
export class Crashlytics extends IonicNativePlugin {
/**
* Add logging that will be sent with your crash data. This logging will not show up
* in the system.log and will only be visible in your Crashlytics dashboard.
* @param message {string}
*/
@Cordova({ sync: true })
addLog(message: string): void {
return;
}
/**
* Used to simulate a native platform crash (useful for testing Crashlytics logging).
*/
@Cordova({ sync: true })
sendCrash(): void {
return;
}
/**
* Used to log a non-fatal error message (Android only).
*/
@Cordova({ sync: true })
sendNonFatalCrash(message: string, stacktrace?: any): void {
return;
}
/**
* Used to record a non-fatal error message (iOS only).
*/
@Cordova({ sync: true })
recordError(message: string, code: number): void {
return;
}
/**
* Sets the user's identifier for logging to Crashlytics backend.
*/
@Cordova({ sync: true })
setUserIdentifier(userId: string): void {
return;
}
/**
* Sets the user's name for logging to Crashlytics backend.
*/
@Cordova({ sync: true })
setUserName(userName: string): void {
return;
}
/**
* Sets the user's email address for logging to Crashlytics backend.
*/
@Cordova({ sync: true })
setUserEmail(email: string): void {
return;
}
/**
* Sets a custom key/value pair for logging to Crashlytics backend.
*/
@Cordova({ sync: true })
setStringValueForKey(value: string, key: string): void {
return;
}
/**
* Sets a custom key/value pair for logging to Crashlytics backend.
*/
@Cordova({ sync: true })
setIntValueForKey(value: number, key: string): void {
return;
}
/**
* Sets a custom key/value pair for logging to Crashlytics backend.
*/
@Cordova({ sync: true })
setBoolValueForKey(value: boolean, key: string): void {
return;
}
/**
* Sets a custom key/value pair for logging to Crashlytics backend.
*/
@Cordova({ sync: true })
setFloatValueForKey(value: number, key: string): void {
return;
}
}
/**
* @name Answers
* @description
* API for interacting with the Answers kit.
*
* https://docs.fabric.io/crashlytics/index.html
*
* @usage
* ```typescript
* import { Answers } from '@ionic-native/fabric';
*
*
* constructor(private answers: Answers) { }
*
* ...
*
* this.answers.sendCustomEvent('SomeCustomEvent', { some: "attributes" })
*
* ```
*/
@Plugin({
pluginName: 'Answers',
plugin: 'cordova-fabric-plugin',
pluginRef: 'window.fabric.Answers',
repo: 'https://www.npmjs.com/package/cordova-fabric-plugin',
install:
'ionic cordova plugin add cordova-fabric-plugin --variable FABRIC_API_KEY=XXX --variable FABRIC_API_SECRET=xxx',
installVariables: ['FABRIC_API_KEY', 'FABRIC_API_SECRET'],
platforms: ['Android', 'iOS']
})
@Injectable()
export class Answers extends IonicNativePlugin {
/**
* Sends the Purchase tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#purchase
*
* @param itemPrice The item's amount in the currency specified.
* @param currency The ISO4217 currency code.
* @param success Was the purchase completed succesfully?
* @param itemName The human-readable name for the item.
* @param itemType The category the item falls under.
* @param itemId A unique identifier used to track the item.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendPurchase(
itemPrice?: number,
currency?: string,
success?: boolean,
itemName?: string,
itemType?: string,
itemId?: string,
attributes?: Attributes
): void {
return;
}
/**
* Sends the Add To Cart tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#add-to-cart
*
* @param itemPrice The item's amount in the currency specified.
* @param currency The ISO4217 currency code.
* @param itemName The human-readable name for the item.
* @param itemType The category the item falls under.
* @param itemId A unique identifier used to track the item.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendAddToCart(
itemPrice?: number,
currency?: string,
itemName?: string,
itemType?: string,
itemId?: string,
attributes?: Attributes
): void {
return;
}
/**
* Sends the Start Checkout tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#start-checkout
*
* @param totalPrice The total price of all items in cart in the currency specified.
* @param currency The ISO4217 currency code.
* @param itemCount The count of items in cart.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendStartCheckout(
totalPrice?: number,
currency?: string,
itemCount?: number,
attributes?: Attributes
): void {
return;
}
/**
* Sends the Search tracking event.
*
* https://docs.fabric.io/android/answers/answers-events.html#search
*
* @param query What the user is searching for.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendSearch(query: string, attributes?: Attributes): void {
return;
}
/**
* Sends the Share tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#share
*
* @param method The method used to share content.
* @param contentName The description of the content.
* @param contentType The type or genre of content.
* @param contentId A unique key identifying the content.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendShare(
method?: string,
contentName?: string,
contentType?: string,
contentId?: string,
attributes?: Attributes
): void {
return;
}
/**
* Sends the Rated Content tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#rated-content
*
* @param rating An integer rating of the content.
* @param contentName The human-readable name of content.
* @param contentType The category your item falls under.
* @param contentId A unique identifier used to track the item.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendRatedContent(
rating?: number,
contentName?: string,
contentType?: string,
contentId?: string,
attributes?: Attributes
): void {
return;
}
/**
* Sends the Sign Up tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#sign-up
*
* @param method An optional description of the sign up method (Twitter, Facebook, etc.); defaults to "Direct".
* @param success An optional flag that indicates sign up success; defaults to true.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendSignUp(
method?: string,
success?: boolean,
attributes?: Attributes
): void {
return;
}
/**
* Sends the Log In tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#log-in
*
* @param method An optional description of the sign in method (Twitter, Facebook, etc.); defaults to "Direct".
* @param success An optional flag that indicates sign in success; defaults to true.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendLogIn(method?: string, success?: boolean, attributes?: Attributes): void {
return;
}
/**
* Sends the Invite tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#invite
*
* @param method An optional description of the sign in method (Twitter, Facebook, etc.); defaults to "Direct".
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendInvite(method?: string, attributes?: Attributes): void {
return;
}
/**
* Sends the Level Start tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#level-start
*
* @param levelName String key describing the level.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendLevelStart(levelName?: string, attributes?: Attributes): void {
return;
}
/**
* Sends the Level End tracking event.
*
* All parameters are optional.
*
* https://docs.fabric.io/android/answers/answers-events.html#level-end
*
* @param levelName String key describing the level.
* @param score The score for this level.
* @param success Completed the level or failed trying.
* @param attributes Any additional user-defined attributes to be logged.
*/
@Cordova({ sync: true })
sendLevelEnd(
levelName?: string,
score?: number,
success?: boolean,
attributes?: Attributes
): void {
return;
}
/**
* Send the Content View tracking event.
*
* https://docs.fabric.io/android/answers/answers-events.html#content-view
*/
@Cordova({ sync: true })
sendContentView(
name: string,
type?: string,
id?: string,
attributes?: Attributes
): void {
return;
}
/**
* Shortcut for sendContentView(...) using type of "Screen".
*/
@Cordova({ sync: true })
sendScreenView(name: string, id: string, attributes?: Attributes): void {
return;
}
/**
* Send a custom tracking event with the given name.
*
* https://docs.fabric.io/android/answers/answers-events.html#custom-event
*/
@Cordova({ sync: true })
sendCustomEvent(name: string, attributes?: Attributes): void {
return;
}
}
+42 -38
View File
@@ -2,11 +2,9 @@ import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
export interface FacebookLoginResponse {
status: string;
authResponse: {
session_key: boolean;
accessToken: string;
@@ -18,9 +16,7 @@ export interface FacebookLoginResponse {
secret: string;
userID: string;
};
}
/**
@@ -114,46 +110,46 @@ export interface FacebookLoginResponse {
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"',
install:
'ionic cordova plugin add cordova-plugin-facebook4 --variable APP_ID="123456789" --variable APP_NAME="myApplication"',
installVariables: ['APP_ID', 'APP_NAME'],
platforms: ['Android', 'iOS', 'Browser']
})
@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'
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';
};
/**
@@ -302,4 +298,12 @@ export class Facebook extends IonicNativePlugin {
return;
}
/**
* Returns the deferred app link
* @returns {Promise<any>}
*/
@Cordova()
getDeferredApplink(): Promise<string> {
return;
}
}
@@ -38,10 +38,9 @@ export interface IDynamicLink {
* constructor(private firebaseDynamicLinks: FirebaseDynamicLinks) { }
*
* ...
*
* // Handle the logic here after opening the app with the Dynamic link
* this.firebaseDynamicLinks.onDynamicLink()
* .then((res: any) => console.log(res)) //Handle the logic here after opening the app with the Dynamic link
* .catch((error:any) => console.log(error));
* .subscribe((res: any) => console.log(res), (error:any) => console.log(error));
* ```
*
* @interfaces
+6 -6
View File
@@ -74,7 +74,7 @@ export class HTTP extends IonicNativePlugin {
* This returns an object representing a basic HTTP Authorization header of the form.
* @param username {string} Username
* @param password {string} Password
* @returns {Object} an object representing a basic HTTP Authorization header of the form {'Authorization': 'Basic base64encodedusernameandpassword'}
* @returns {Object} an object representing a basic HTTP Authorization header of the form {'Authorization': 'Basic base64EncodedUsernameAndPassword'}
*/
@Cordova({ sync: true })
getBasicAuthHeader(
@@ -283,7 +283,7 @@ export class HTTP extends IonicNativePlugin {
* @param headers {Object} The headers to set for this request
* @param filePath {string} The local path of the file to upload
* @param name {string} The name of the parameter to pass the file along as
* @returns {Promise<HTTPResponse>} returns a promise that resolve on success, and reject on failure
* @returns {Promise<any>} returns a FileEntry promise that resolve on success, and reject on failure
*/
@Cordova()
uploadFile(
@@ -292,7 +292,7 @@ export class HTTP extends IonicNativePlugin {
headers: any,
filePath: string,
name: string
): Promise<HTTPResponse> {
): Promise<any> {
return;
}
@@ -301,8 +301,8 @@ export class HTTP extends IonicNativePlugin {
* @param url {string} The url to send the request to
* @param body {Object} The body of the request
* @param headers {Object} The headers to set for this request
* @param filePath {string} The path to donwload the file to, including the file name.
* @returns {Promise<HTTPResponse>} returns a promise that resolve on success, and reject on failure
* @param filePath {string} The path to download the file to, including the file name.
* @returns {Promise<any>} returns a FileEntry promise that resolve on success, and reject on failure
*/
@Cordova()
downloadFile(
@@ -310,7 +310,7 @@ export class HTTP extends IonicNativePlugin {
body: any,
headers: any,
filePath: string
): Promise<HTTPResponse> {
): Promise<any> {
return;
}
}
@@ -394,8 +394,12 @@ export interface ILocalNotification {
* ANDROID ONLY
* Set the token for the media session
*/
mediaSession?: string;
mediaSession?: string;
/**
* Make this notification show when app in foreground.
*/
foreground?: boolean;
}
/**
+4 -2
View File
@@ -88,7 +88,8 @@ export class Network extends IonicNativePlugin {
*/
@Cordova({
eventObservable: true,
event: 'offline'
event: 'offline',
element: document
})
onDisconnect(): Observable<any> {
return;
@@ -100,7 +101,8 @@ export class Network extends IonicNativePlugin {
*/
@Cordova({
eventObservable: true,
event: 'online'
event: 'online',
element: document
})
onConnect(): Observable<any> {
return;
+3 -17
View File
@@ -341,27 +341,13 @@ export class Ndef extends IonicNativePlugin {
}
@Cordova({ sync: true })
textRecord(
text: string,
languageCode: string,
id: number[] | string
): NdefRecord {
return;
}
textRecord(text: string, languageCode?: string, id?: number[] | string): NdefRecord { return; }
@Cordova({ sync: true })
uriRecord(uri: string, id: number[] | string): NdefRecord {
return;
}
uriRecord(uri: string, id?: number[] | string): NdefRecord { return; }
@Cordova({ sync: true })
absoluteUriRecord(
uri: string,
payload: number[] | string,
id: number[] | string
): NdefRecord {
return;
}
absoluteUriRecord(uri: string, payload: number[] | string, id?: number[] | string): NdefRecord { return; }
@Cordova({ sync: true })
mimeMediaRecord(mimeType: string, payload: string): NdefRecord {
+1 -1
View File
@@ -703,7 +703,7 @@ export class OneSignal extends IonicNativePlugin {
}
/**
* Clears all OneSignla notifications
* Clears all OneSignal notifications
*/
@Cordova({ sync: true })
clearOneSignalNotifications(): void {}
@@ -263,6 +263,7 @@ export interface GetLibraryOptions {
chunkTimeSec?: number;
useOriginalFileNames?: boolean;
includeAlbumData?: boolean;
includeVideos?: boolean;
maxItems?: number;
}
@@ -35,7 +35,7 @@ import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
@Plugin({
pluginName: 'UserAgent',
plugin: 'cordova-plugin-useragent',
pluginRef: 'plugins.useragent',
pluginRef: 'UserAgent',
repo: 'https://github.com/danielsogl/cordova-plugin-useragent',
platforms: ['Android', 'iOS']
})
@@ -0,0 +1,197 @@
import { Injectable } from '@angular/core';
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
/**
* @name Webengage
* @description
* Ionic-Native wrapper that wraps Webengage Cordova plugin for Android and iOS
*
* @usage
* ```typescript
* import { Webengage, WebengageUser, WebengagePush, WebengageNotification } from '@ionic-native/webengage';
*
*
* constructor(private webengage: Webengage, private webengageUser: WebengageUser, private webengagePush: WebengagePush, private webengageNotification: WebengageNotification ) { }
*
* ...
*
* this.webengage.engage();
* ```
*/
@Plugin({
pluginName: 'Webengage',
plugin: 'cordova-plugin-webengage',
pluginRef: 'webengage',
repo: 'https://github.com/WebEngage/cordova-plugin',
platforms: ['Android', 'iOS']
})
@Injectable()
export class Webengage extends IonicNativePlugin {
/**
* Initializes WebEngage SDK
* @param {any} [config]
* @return {Promise<any>}
*/
@Cordova()
engage(config?: any): Promise<any> {
return;
}
/**
* Sets WebEngage SDK configuration
* @param {string} key
* @param {any} value
* @return {Promise<any>}
*/
@Cordova()
options(key: string, value: any): Promise<any> {
return;
}
/**
* Tracks event
* @param {string} eventName
* @param {any} [attributes]
* @return {Promise<any>}
*/
@Cordova()
track(eventName: string, attributes?: any): Promise<any> {
return;
}
/**
* Tracks screen
* @param {string} eventName
* @param {any} [screenData]
* @return {Promise<any>}
*/
@Cordova()
screen(screenName: string, screenData?: any): Promise<any> {
return;
}
}
/**
* @hidden
*/
@Plugin({
pluginName: 'Webengage',
plugin: 'cordova-plugin-webengage',
pluginRef: 'webengage.user'
})
@Injectable()
export class WebengageUser extends IonicNativePlugin {
/**
* Logs user in
* @param {string} userId
* @return {Promise<any>}
*/
@Cordova()
login(userId: string): Promise<any> {
return;
}
/**
* Logs user out
* @return {Promise<any>}
*/
@Cordova()
logout(): Promise<any> {
return;
}
/**
* Sets user attribute
* @param {string} key
* @param {any} value
* @return {Promise<any>}
*/
@Cordova()
setAttribute(key: string, value: any): Promise<any> {
return;
}
}
/**
* @hidden
*/
@Plugin({
pluginName: 'Webengage',
plugin: 'cordova-plugin-webengage',
pluginRef: 'webengage.push'
})
@Injectable()
export class WebengagePush extends IonicNativePlugin {
/**
* Callback function is invoked when a push notification is clicked
* @param {any} callback
* @return {Promise<any>}
*/
@Cordova()
onClick(callback: any): Promise<any> {
return;
}
/**
* Sets push notification configuration
* @param {string} key
* @param {any} value
* @return {Promise<any>}
*/
@Cordova()
options(key: string, value: any): Promise<any> {
return;
}
}
/**
* @hidden
*/
@Plugin({
pluginName: 'Webengage',
plugin: 'cordova-plugin-webengage',
pluginRef: 'webengage.notification'
})
@Injectable()
export class WebengageNotification extends IonicNativePlugin {
/**
* Callback function is invoked when a in-app notification is shown
* @param {any} callback
* @return {Promise<any>}
*/
@Cordova()
onShown(callback: any): Promise<any> {
return;
}
/**
* Callback function is invoked when a in-app notification is clicked
* @param {any} callback
* @return {Promise<any>}
*/
@Cordova()
onClick(callback: any): Promise<any> {
return;
}
/**
* Callback function is invoked when a in-app notification is dismissed
* @param {any} callback
* @return {Promise<any>}
*/
@Cordova()
onDismiss(callback: any): Promise<any> {
return;
}
/**
* Sets in-app notification configuration
* @param {string} key
* @param {any} value
* @return {Promise<any>}
*/
@Cordova()
options(key: string, value: any): Promise<any> {
return;
}
}