@smartface/plugin-firebase
Version:
Smartface Firebase Plugin for Smartface Native Framework
157 lines • 5.88 kB
JavaScript
"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