import { Injectable } from '@angular/core'; import { Cordova, AwesomeCordovaNativePlugin, Plugin } from '@awesome-cordova-plugins/core'; /** * @name Webengage * @description * Awesome Cordova Plugins wrapper that wraps Webengage Cordova plugin for Android and iOS * @usage * ```typescript * import { Webengage, WebengageUser, WebengagePush, WebengageNotification, WebengageJwtManager } from '@awesome-cordova-plugins/webengage/ngx'; * * * 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 AwesomeCordovaNativePlugin { /** * Initializes WebEngage SDK * @param {any} [config] * @returns {Promise} */ @Cordova() engage(config?: any): Promise { return; } /** * Starts Tracking Google Advertising ID * @returns {Promise} */ @Cordova() startGAIDTracking(): Promise { return; } /** * Sets WebEngage SDK configuration * @param {string} key * @param {any} value * @returns {Promise} */ @Cordova() options(key: string, value: any): Promise { return; } /** * Tracks event * @param {string} eventName * @param {any} [attributes] * @returns {Promise} */ @Cordova() track(eventName: string, attributes?: any): Promise { return; } /** * Tracks screen * @param {string} eventName * @param screenName * @param {any} [screenData] * @returns {Promise} */ @Cordova() screen(screenName: string, screenData?: any): Promise { return; } } /** * @hidden */ @Plugin({ pluginName: 'Webengage', plugin: 'cordova-plugin-webengage', pluginRef: 'webengage.user', }) @Injectable() export class WebengageUser extends AwesomeCordovaNativePlugin { /** * Logs user in * @param {string} userId * @returns {Promise} */ @Cordova() login(userId: string, jwtToken?: string): Promise { return; } /** * Logs user in * @param {string} userId * @returns {Promise} */ @Cordova() setSecureToken(userId: string, jwtToken: string): Promise { return; } /** * Logs user out * @returns {Promise} */ @Cordova() logout(): Promise { return; } /** * Sets user attribute * @param {string} key * @param {any} value * @returns {Promise} */ @Cordova() setAttribute(key: string, value: any): Promise { return; } /** * Sets Device optIn * @param {boolean} optIn * @returns {Promise} */ @Cordova() setDevicePushOptIn(optIn: boolean): Promise { return; } /** * Sets user attribute * @param {string} channel * @param {any} optIn * @returns {Promise} */ @Cordova() setUserOptIn(channel: string, optIn: any): Promise { return; } /** * Sets user location * @param {number} latitude * @param {number} longitude * @returns {Promise} */ @Cordova() setLocation(latitude: number, longitude: number): Promise { return; } } /** * @hidden */ @Plugin({ pluginName: 'Webengage', plugin: 'cordova-plugin-webengage', pluginRef: 'webengage.jwtManager', }) @Injectable() export class WebengageJwtManager extends AwesomeCordovaNativePlugin { /** * Callback function is invoked when a Jwt token is clicked * @param {any} callback * @returns {Promise} */ @Cordova() tokenInvalidatedCallback(callback: any): Promise { return; } } /** * @hidden */ @Plugin({ pluginName: 'Webengage', plugin: 'cordova-plugin-webengage', pluginRef: 'webengage.push', }) @Injectable() export class WebengagePush extends AwesomeCordovaNativePlugin { /** * Callback function is invoked when a push notification is clicked * @param {any} callback * @returns {Promise} */ @Cordova() onClick(callback: any): Promise { return; } /** * Sets push notification configuration * @param {string} key * @param {any} value * @returns {Promise} */ @Cordova() options(key: string, value: any): Promise { return; } } /** * @hidden */ @Plugin({ pluginName: 'Webengage', plugin: 'cordova-plugin-webengage', pluginRef: 'webengage.notification', }) @Injectable() export class WebengageNotification extends AwesomeCordovaNativePlugin { /** * Callback function is invoked when a in-app notification is shown * @param {any} callback * @returns {Promise} */ @Cordova() onShown(callback: any): Promise { return; } /** * Callback function is invoked before a in-app notification is shown * @param {any} callback * @returns {Promise} */ @Cordova() onPrepared(callback: any): Promise { return; } /** * Callback function is invoked when a in-app notification is clicked * @param {any} callback * @returns {Promise} */ @Cordova() onClick(callback: any): Promise { return; } /** * Callback function is invoked when a in-app notification is dismissed * @param {any} callback * @returns {Promise} */ @Cordova() onDismiss(callback: any): Promise { return; } /** * Sets in-app notification configuration * @param {string} key * @param {any} value * @returns {Promise} */ @Cordova() options(key: string, value: any): Promise { return; } }