From 76a9dbfc0fda8191de4e8a1e198cbe43bcc9af70 Mon Sep 17 00:00:00 2001 From: hardikmashru Date: Fri, 10 May 2024 12:36:31 +0530 Subject: [PATCH 1/3] Expose registerDeviceToken method. Expose registerDeviceToken method. --- .../iterable/reactnative/RNIterableAPIModule.java | 6 ++++++ ios/RNIterableAPI/ReactIterableAPI.swift | 7 +++++++ ts/Iterable.ts | 12 ++++++++++++ 3 files changed, 25 insertions(+) diff --git a/android/src/main/java/com/iterable/reactnative/RNIterableAPIModule.java b/android/src/main/java/com/iterable/reactnative/RNIterableAPIModule.java index 0f55031aa..d77ee3103 100644 --- a/android/src/main/java/com/iterable/reactnative/RNIterableAPIModule.java +++ b/android/src/main/java/com/iterable/reactnative/RNIterableAPIModule.java @@ -306,6 +306,12 @@ public void disableDeviceForCurrentUser() { IterableApi.getInstance().disablePush(); } + @ReactMethod + public void registerDeviceToken(String deviceToken) { + IterableLogger.v(TAG, "registerDeviceToken"); + IterableApi.getInstance().registerDeviceToken(deviceToken); + } + @ReactMethod public void handleAppLink(String uri, Promise promise) { IterableLogger.printInfo(); diff --git a/ios/RNIterableAPI/ReactIterableAPI.swift b/ios/RNIterableAPI/ReactIterableAPI.swift index cb235b4d9..9df0e0e7d 100644 --- a/ios/RNIterableAPI/ReactIterableAPI.swift +++ b/ios/RNIterableAPI/ReactIterableAPI.swift @@ -146,6 +146,13 @@ class ReactIterableAPI: RCTEventEmitter { inAppHandlerSemaphore.signal() } + @objc(registerDeviceToken) + func registerDeviceToken(deviceToken: String) { + ITBInfo() + + IterableAPI.registerDeviceToken(deviceToken) + } + @objc(disableDeviceForCurrentUser) func disableDeviceForCurrentUser() { ITBInfo() diff --git a/ts/Iterable.ts b/ts/Iterable.ts index ff90040c4..9721e3324 100644 --- a/ts/Iterable.ts +++ b/ts/Iterable.ts @@ -297,6 +297,18 @@ class Iterable { RNIterableAPI.disableDeviceForCurrentUser() } + /** + * Registers a device token with Iterable. + * Make sure IterableConfig.pushIntegrationName is set before calling this. + * @param {string} deviceToken Push token obtained from GCM or FCM. + */ + + static registerDeviceToken(deviceToken: string) { + Iterable.logger.log("registerDeviceToken") + + RNIterableAPI.registerDeviceToken(deviceToken) + } + /** * This static method returns the payload of the last push notification with which the user * opened the application (by clicking an action button, etc.). From 38d14f96e8f547bf4fde45304fc2a1d33bc030dd Mon Sep 17 00:00:00 2001 From: hardikmashru Date: Fri, 10 May 2024 16:03:07 +0530 Subject: [PATCH 2/3] Added RCT_EXTERN_METHOD for registering deviceToken. --- ios/RNIterableAPI/RNIterableAPI.m | 2 ++ ios/RNIterableAPI/ReactIterableAPI.swift | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ios/RNIterableAPI/RNIterableAPI.m b/ios/RNIterableAPI/RNIterableAPI.m index 8850c755a..c27337fb0 100644 --- a/ios/RNIterableAPI/RNIterableAPI.m +++ b/ios/RNIterableAPI/RNIterableAPI.m @@ -38,6 +38,8 @@ @interface RCT_EXTERN_REMAP_MODULE(RNIterableAPI, ReactIterableAPI, NSObject) RCT_EXTERN_METHOD(disableDeviceForCurrentUser) +RCT_EXTERN_METHOD(registerToken: (nonnull NSString *) deviceToken) + RCT_EXTERN_METHOD(setInAppShowResponse: (nonnull NSNumber *) inAppShowResponse) RCT_EXTERN_METHOD(getLastPushPayload: (RCTPromiseResolveBlock) resolve diff --git a/ios/RNIterableAPI/ReactIterableAPI.swift b/ios/RNIterableAPI/ReactIterableAPI.swift index 9df0e0e7d..aefd24951 100644 --- a/ios/RNIterableAPI/ReactIterableAPI.swift +++ b/ios/RNIterableAPI/ReactIterableAPI.swift @@ -146,11 +146,11 @@ class ReactIterableAPI: RCTEventEmitter { inAppHandlerSemaphore.signal() } - @objc(registerDeviceToken) + @objc(registerToken) func registerDeviceToken(deviceToken: String) { ITBInfo() - IterableAPI.registerDeviceToken(deviceToken) + IterableAPI.registerToken(deviceToken) } @objc(disableDeviceForCurrentUser) From beb2beb7b561e89233165cd586cee56a14a14981 Mon Sep 17 00:00:00 2001 From: Hardik Mashru Date: Mon, 13 May 2024 15:40:56 +0530 Subject: [PATCH 3/3] fixes for registerDevicetoken --- ios/RNIterableAPI/RNIterableAPI.m | 2 +- ios/RNIterableAPI/ReactIterableAPI.swift | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ios/RNIterableAPI/RNIterableAPI.m b/ios/RNIterableAPI/RNIterableAPI.m index c27337fb0..9195789ed 100644 --- a/ios/RNIterableAPI/RNIterableAPI.m +++ b/ios/RNIterableAPI/RNIterableAPI.m @@ -38,7 +38,7 @@ @interface RCT_EXTERN_REMAP_MODULE(RNIterableAPI, ReactIterableAPI, NSObject) RCT_EXTERN_METHOD(disableDeviceForCurrentUser) -RCT_EXTERN_METHOD(registerToken: (nonnull NSString *) deviceToken) +RCT_EXTERN_METHOD(registerDeviceToken: (nonnull NSString *) token) RCT_EXTERN_METHOD(setInAppShowResponse: (nonnull NSNumber *) inAppShowResponse) diff --git a/ios/RNIterableAPI/ReactIterableAPI.swift b/ios/RNIterableAPI/ReactIterableAPI.swift index aefd24951..9f1401dcd 100644 --- a/ios/RNIterableAPI/ReactIterableAPI.swift +++ b/ios/RNIterableAPI/ReactIterableAPI.swift @@ -146,11 +146,15 @@ class ReactIterableAPI: RCTEventEmitter { inAppHandlerSemaphore.signal() } - @objc(registerToken) - func registerDeviceToken(deviceToken: String) { + @objc(registerDeviceToken:) + func registerDeviceToken(token: String) { ITBInfo() - IterableAPI.registerToken(deviceToken) + if let deviceTokenData = token.data(using: .utf8) { + IterableAPI.register(token: deviceTokenData) + } else { + ITBInfo("Failed to convert device token string to data") + } } @objc(disableDeviceForCurrentUser)