UNPKG

@nativescript/firebase-analytics

Version:
96 lines 3.13 kB
import { firebase, FirebaseApp, serialize } from '@nativescript/firebase-core'; import { ConsentStatus, ConsentType } from '.'; export * from './common'; let defaultAnalytics; const fb = firebase(); Object.defineProperty(fb, 'analytics', { value: () => { if (!defaultAnalytics) { defaultAnalytics = new Analytics(); } return defaultAnalytics; }, writable: false, }); export class Analytics { constructor() { if (defaultAnalytics) { return defaultAnalytics; } defaultAnalytics = this; } handleOpenURL(url) { try { FIRAnalytics.handleOpenURL(NSURL.URLWithString(url)); } catch (e) { } } handleUserActivity(userActivity) { FIRAnalytics.handleUserActivity(userActivity); } get app() { if (!this._app) { // @ts-ignore this._app = FirebaseApp.fromNative(FIRApp.defaultApp()); } return this._app; } get appInstanceId() { return FIRAnalytics?.appInstanceID?.(); } setSessionTimeoutInterval(sessionTimeoutInterval) { FIRAnalytics.setSessionTimeoutInterval(sessionTimeoutInterval); } setUserProperty(key, value) { FIRAnalytics.setUserPropertyStringForName(value, key); } setAnalyticsCollectionEnabled(analyticsCollectionEnabled) { FIRAnalytics.setAnalyticsCollectionEnabled(analyticsCollectionEnabled); } setUserId(userId) { FIRAnalytics.setUserID(userId); } logEvent(name, parameters) { FIRAnalytics.logEventWithNameParameters(name, serialize(parameters)); } resetAnalyticsData() { FIRAnalytics.resetAnalyticsData(); } setDefaultEventParameters(parameters) { FIRAnalytics.setDefaultEventParameters(serialize(parameters)); } setConsent(consentSettings) { const dictionary = {}; consentSettings.forEach((value, key) => { let nativeKey; let nativeValue; switch (key) { case ConsentType.Ad_Storage: nativeKey = FIRConsentTypeAdStorage; break; case ConsentType.Analytics_Storage: nativeKey = FIRConsentTypeAnalyticsStorage; break; case ConsentType.Ad_User_Data: nativeKey = FIRConsentTypeAdUserData; break; case ConsentType.Ad_Personalization: nativeKey = FIRConsentTypeAdPersonalization; break; } switch (value) { case ConsentStatus.Denied: nativeValue = FIRConsentStatusDenied; break; case ConsentStatus.Granted: nativeValue = FIRConsentStatusGranted; break; } if (nativeKey && nativeValue) { dictionary[nativeKey] = nativeValue; } }); FIRAnalytics.setConsent(dictionary); } } //# sourceMappingURL=index.ios.js.map