diff --git a/ios/BranchUniversalObject+RNBranch.h b/ios/BranchUniversalObject+RNBranch.h index ba2d3456b..c6a13af4b 100644 --- a/ios/BranchUniversalObject+RNBranch.h +++ b/ios/BranchUniversalObject+RNBranch.h @@ -16,6 +16,6 @@ - (instancetype)initWithMap:(NSDictionary *)map; -- (void)userCompletedAction:(NSString *)action withState:(NSDictionary *)state; +- (void)rnbranchUserCompletedAction:(NSString *)action withState:(NSDictionary *)state; @end diff --git a/ios/BranchUniversalObject+RNBranch.m b/ios/BranchUniversalObject+RNBranch.m index e15417e92..963d6514d 100644 --- a/ios/BranchUniversalObject+RNBranch.m +++ b/ios/BranchUniversalObject+RNBranch.m @@ -101,8 +101,15 @@ - (void)setExpirationDateWithString:(NSString *)expirationDate * Until the native SDK supports this, the following is largely lifted from BUO.m. */ -- (void)userCompletedAction:(NSString *)action withState:(NSDictionary *)state +- (void)rnbranchUserCompletedAction:(NSString *)action withState:(NSDictionary *)state { + // Anticipate that the native SDK will support this. + SEL sdkMethod = @selector(userCompletedAction:withState:); + if ([self respondsToSelector:sdkMethod]) { + [self performSelector:sdkMethod withObject:action withObject:state]; + return; + } + NSMutableDictionary *actionPayload = [[NSMutableDictionary alloc] init]; NSDictionary *linkParams = [self getParamsForServerRequest]; if (self.canonicalIdentifier && linkParams) { diff --git a/ios/RNBranch.m b/ios/RNBranch.m index 8085fb992..77039276d 100644 --- a/ios/RNBranch.m +++ b/ios/RNBranch.m @@ -221,7 +221,7 @@ - (BranchUniversalObject *)findUniversalObjectWithIdent:(NSString *)ident reject BranchUniversalObject *branchUniversalObject = [self findUniversalObjectWithIdent:identifier rejecter:reject]; if (!branchUniversalObject) return; - [branchUniversalObject userCompletedAction:event withState:state]; + [branchUniversalObject rnbranchUserCompletedAction:event withState:state]; resolve(NSNull.null); }