smartech-base-react-native
Version:
Smartech Base SDK's React Native Plugin For React Native Projects.
63 lines (49 loc) • 2.4 kB
text/typescript
import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport';
import { TurboModuleRegistry } from 'react-native';
export interface Spec extends TurboModule {
readonly getConstants: () => {
SmartechDeeplink: string;
SmartechWidgetDataReceived: string
};
// App tracking methods
trackAppInstall(): void;
trackAppUpdate(): void;
trackAppInstallUpdateBySmartech(): void;
trackEvent(eventName: string, payload: Object): void;
// User identity methods
login(identity: string): void;
logoutAndClearUserIdentity(isLogout: boolean): void;
setUserIdentity(identity: string, callback: (err: Object | null, res: Object | null) => void): void;
getUserIdentity(callback: (err: Object | null, res: Object | null) => void): void;
clearUserIdentity(): void;
// User profile methods
updateUserProfile(profileData: Object): void;
// GDPR methods
optTracking(value: boolean): void;
hasOptedTracking(callback: (err: Object | null, res: Object | null) => void): void;
optInAppMessage(value: boolean): void;
hasOptedInAppMessage(callback: (err: Object | null, res: Object | null) => void): void;
// Location methods
setUserLocation(latitude: number, longitude: number): void;
// Helper methods
getAppId(callback: (err: Object | null, res: Object | null) => void): void;
getDeviceGuid(callback: (err: Object | null, res: Object | null) => void): void;
getSDKVersion(callback: (err: Object | null, res: Object | null) => void): void;
// Unbxd Idenity
getNetcoreUnbxdIdentity(callback: (err: Object | null, res: Object | null) => void): void;
// Partner parameters
getPartnerParametersString(callback: (err: Object | null, res: Object | null) => void): void;
// Deeplink methods
setDeeplinkInit(): void;
// AppContentPz methods
getWidgetByName(widgetName: string): void;
getWidgetByNames(widgetNames: string[]): void;
getAllWidgets(): void;
getAllWidgetNames(callback: (err: Object | null, res: Object | null) => void): void;
trackWidgetAsViewed(widget: Object): void;
trackWidgetAsClicked(widget: Object): void;
// Event listeners (for deeplink events)
addListener(eventName: string): void;
removeListeners(count: number): void;
}
export default TurboModuleRegistry.getEnforcing<Spec>('SmartechBaseReactNative');