diff --git a/Iterable.ts b/Iterable.ts index a6a56bfa6..48299312f 100644 --- a/Iterable.ts +++ b/Iterable.ts @@ -300,6 +300,11 @@ class Iterable { console.log("getInAppMessages"); return RNIterableAPI.getInAppMessages().then((messages: Array) => messages.map (message => {return IterableInAppMessage.fromDict(message)})) } + + static trackEvent(name: String, dataFields: any | null) { + console.log("trackEvent") + return RNIterableAPI.trackEvent(name, dataFields) + } } export { Iterable, IterableConfig, PushServicePlatform, IterableAction, IterableActionContext, IterableAttributionInfo, IterableCommerceItem }; diff --git a/index.d.ts b/index.d.ts index 647a15ade..e83915011 100644 --- a/index.d.ts +++ b/index.d.ts @@ -16,6 +16,7 @@ export class Iterable { static trackInAppOpen(message: IterableInAppMessage, location: IterableInAppLocation): void static trackInAppClick(message: IterableInAppMessage, location: IterableInAppLocation, clickedUrl: String): void static inAppConsume(message: IterableInAppMessage, location: IterableInAppLocation, source: IterableInAppDeleteSource): void + static trackEvent(name: String, dataFields: any | null): void } export enum PushServicePlatform { diff --git a/ios/RNIterableAPI/RNIterableAPI.m b/ios/RNIterableAPI/RNIterableAPI.m index 4cd78d037..93200f4ea 100644 --- a/ios/RNIterableAPI/RNIterableAPI.m +++ b/ios/RNIterableAPI/RNIterableAPI.m @@ -68,6 +68,7 @@ @interface RCT_EXTERN_REMAP_MODULE(RNIterableAPI, ReactIterableAPI, NSObject) RCT_EXTERN_METHOD(getInAppMessages: (RCTPromiseResolveBlock) resolve rejecter: (RCTPromiseRejectBlock) reject) -RCT_EXTERN_METHOD(track: (NSString *) event) +RCT_EXTERN_METHOD(trackEvent: (NSString *) name + dataFields: (NSDictionary *) dataFields) @end diff --git a/ios/RNIterableAPI/ReactIterableAPI.swift b/ios/RNIterableAPI/ReactIterableAPI.swift index 52b2dea6e..6f1a6a87e 100644 --- a/ios/RNIterableAPI/ReactIterableAPI.swift +++ b/ios/RNIterableAPI/ReactIterableAPI.swift @@ -239,10 +239,10 @@ class ReactIterableAPI: RCTEventEmitter { resolver(IterableAPI.inAppManager.getMessages().map{ $0.toDict() }) } - @objc(trackEvent:) - func track(event: String) { + @objc(trackEvent:dataFields:) + func trackEvent(name: String, dataFields: [AnyHashable: Any]?) { ITBInfo() - IterableAPI.track(event: event) + IterableAPI.trackEvent(name: event, dataFields) } private var shouldEmit = false