UNPKG

@smartface/plugin-firebase

Version:

Smartface Firebase Plugin for Smartface Native Framework

157 lines 5.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var invocation_1 = __importDefault(require("@smartface/native/util/iOS/invocation")); var events_1 = __importDefault(require("./events")); var params_1 = __importDefault(require("./params")); /** * Firebase Analytics service * @static * @public * @property {object} */ var Analytics = /** @class */ (function () { function Analytics() { } /** * Logs an app event. The event can have up to 25 parameters. Events with the same name must have the same parameters. Up to 500 event names are supported. * Using predefined events and/or parameters is recommended for optimal reporting. * * @android * @ios * @since 0.1 */ Analytics.logEvent = function (name, customAttributes) { var customDictionary = {}; if (customAttributes instanceof Array) { for (var i = 0; i < customAttributes.length; i++) { customDictionary[customAttributes[i].key] = customAttributes[i].value; } } Analytics.ios.native.logEventWithNameParameters(name, customDictionary); }; /** * Sets a user property to a given value. Up to 25 user property names are supported. * Once set, user property values persist throughout the app lifecycle and across sessions. * * @android * @ios * @since 0.1 */ Analytics.setUserProperty = function (name, value) { Analytics.ios.native.setUserPropertyStringForName(value, name); }; /** * Sets the user ID property. This feature must be used in accordance with Google’s Privacy Policy. * * @android * @ios * @since 0.1 */ Analytics.setUserId = function (id) { Analytics.ios.native.setUserID(id); }; /** * Sets the current screen name, which specifies the current visual context in your app. * This helps identify the areas in your app where users spend their time and how they interact with your app. * Must be called on the main thread. * * @android * @ios * @since 0.1 */ Analytics.setCurrentScreen = function (screenName, screenClassOverride) { Analytics.ios.native.setScreenNameScreenClass(screenName, screenClassOverride); }; Analytics.getAppInstanceId = function (callback) { if (typeof callback === 'function') { callback(Analytics.ios.native.appInstanceID()); } }; Analytics.Event = events_1.default; Analytics.Param = params_1.default; /** * CustomAttribute for logCustom. * * @example * import Analytics from '@smartface/plugin-firebase'; * var attribute1 = new Analytics.CustomAttribute("key","value"); * var attribute2 = new Analytics.CustomAttribute("key",12); * * @android * @ios * @static * @since 1.0 */ Analytics.CustomAttribute = /** @class */ (function () { function class_1(key, value) { this.key = key; this.value = value; } return class_1; }()); Analytics.ios = { native: { logEventWithNameParameters: function (name, parameters) { // @ts-ignore var argName = new invocation_1.default.Argument({ type: 'NSString', value: name }); // @ts-ignore var argParameters = new invocation_1.default.Argument({ type: 'id', value: parameters }); // @ts-ignore invocation_1.default.invokeClassMethod('FIRAnalytics', 'logEventWithName:parameters:', [argName, argParameters]); }, setUserPropertyStringForName: function (value, name) { // @ts-ignore var argName = new invocation_1.default.Argument({ type: 'NSString', value: name }); // @ts-ignore var argValue = new invocation_1.default.Argument({ type: 'NSString', value: value }); // @ts-ignore invocation_1.default.invokeClassMethod('FIRAnalytics', 'setUserPropertyString:forName:', [argValue, argName]); }, setUserID: function (userID) { // @ts-ignore var argUserID = new invocation_1.default.Argument({ type: 'NSString', value: userID }); // @ts-ignore invocation_1.default.invokeClassMethod('FIRAnalytics', 'setUserID:', [argUserID]); }, setScreenNameScreenClass: function (screenName, screenClassOverride) { // @ts-ignore var argScreen = new invocation_1.default.Argument({ type: 'NSString', value: screenName }); // @ts-ignore var argClassOverride = new invocation_1.default.Argument({ type: 'NSString', value: screenClassOverride }); // @ts-ignore invocation_1.default.invokeClassMethod('FIRAnalytics', 'setScreenName:screenClass:', [argScreen, argClassOverride]); }, appInstanceID: function () { return invocation_1.default.invokeClassMethod('FIRAnalytics', 'appInstanceID', [], 'NSString'); } } }; return Analytics; }()); exports.default = Analytics; module.exports = Analytics; //# sourceMappingURL=analytics-iOS.js.map