Skip to content

Commit

Permalink
Add iOS implementation
Browse files Browse the repository at this point in the history
- new methods updateUserJwt and addUserJwtInvalidatedListener added to the bridge
  • Loading branch information
jennantilla committed Nov 14, 2024
1 parent eb4de36 commit a944c52
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 3 deletions.
4 changes: 4 additions & 0 deletions ios/RCTOneSignal/RCTOneSignal.m
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,10 @@ - (void)onDidDismissInAppMessage:(OSInAppMessageDidDismissEvent * _Nonnull)event
[self sendEvent:OSEventString(InAppMessageDidDismiss) withBody:[event jsonRepresentation]];
}

- (void)onUserJwtInvalidated:(OSUserJwtInvalidatedEvent * _Nonnull)event {
[self sendEvent:OSEventString(UserJwtInvalidated) withBody:[event jsonRepresentation]];
}

- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
Expand Down
3 changes: 2 additions & 1 deletion ios/RCTOneSignal/RCTOneSignalEventEmitter.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,10 @@ typedef NS_ENUM(NSInteger, OSNotificationEventTypes) {
InAppMessageDidDisplay,
InAppMessageWillDismiss,
InAppMessageDidDismiss,
UserJwtInvalidated,
};

#define OSNotificationEventTypesArray @[@"OneSignal-permissionChanged",@"OneSignal-subscriptionChanged",@"OneSignal-userStateChanged",@"OneSignal-notificationWillDisplayInForeground",@"OneSignal-notificationClicked",@"OneSignal-inAppMessageClicked", @"OneSignal-inAppMessageWillDisplay", @"OneSignal-inAppMessageDidDisplay", @"OneSignal-inAppMessageWillDismiss", @"OneSignal-inAppMessageDidDismiss"]
#define OSNotificationEventTypesArray @[@"OneSignal-permissionChanged",@"OneSignal-subscriptionChanged",@"OneSignal-userStateChanged",@"OneSignal-notificationWillDisplayInForeground",@"OneSignal-notificationClicked",@"OneSignal-inAppMessageClicked", @"OneSignal-inAppMessageWillDisplay", @"OneSignal-inAppMessageDidDisplay", @"OneSignal-inAppMessageWillDismiss", @"OneSignal-inAppMessageDidDismiss", @"OneSignal-userJwtInvalidated"]

#define OSEventString(enum) [OSNotificationEventTypesArray objectAtIndex:enum]

Expand Down
16 changes: 14 additions & 2 deletions ios/RCTOneSignal/RCTOneSignalEventEmitter.m
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ @implementation RCTOneSignalEventEmitter {
BOOL _hasAddedNotificationForegroundLifecycleListener;
BOOL _hasAddedInAppMessageClickListener;
BOOL _hasAddedInAppMessageLifecycleListener;
BOOL _hasAddedUserJwtInvalidatedListener;
NSMutableDictionary* _preventDefaultCache;
NSMutableDictionary* _notificationWillDisplayCache;
}
Expand Down Expand Up @@ -104,14 +105,25 @@ + (void)sendEventWithName:(NSString *)name withBody:(NSDictionary *)body {
[OneSignal initialize:appId withLaunchOptions:NULL];
}

RCT_EXPORT_METHOD(login:(NSString *)externalId) {
[OneSignal login:externalId];
RCT_EXPORT_METHOD(login:(NSString *)externalId jwtToken:(NSString *)jwtToken) {
[OneSignal login:externalId withToken:jwtToken];
}

RCT_EXPORT_METHOD(logout) {
[OneSignal logout];
}

RCT_EXPORT_METHOD(updateUserJwt:(NSString *)externalId jwtToken:(NSString *)jwtToken) {
[OneSignal updateUserJwt:externalId withToken:jwtToken];
}

RCT_EXPORT_METHOD(addUserJwtInvalidatedListener) {
if (!_hasAddedUserJwtInvalidatedListener) {
[OneSignal addUserJwtInvalidatedListener:[RCTOneSignal sharedInstance]];
_hasAddedUserJwtInvalidatedListener = true;
}
}

RCT_EXPORT_METHOD(enterLiveActivity:(NSString *)activityId
withToken:(NSString *)token
withResponse:(RCTResponseSenderBlock)callback) {
Expand Down

0 comments on commit a944c52

Please sign in to comment.