mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-03-17 00:51:07 +08:00
feat(fabric): add fabric plugin (#2618)
* feat(fabric): add fabric plugin * Update index.ts
This commit is contained in:
parent
d10777a33b
commit
9b4fd02fa5
425
src/@ionic-native/plugins/fabric/index.ts
Normal file
425
src/@ionic-native/plugins/fabric/index.ts
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user