File tree Expand file tree Collapse file tree 3 files changed +15
-5
lines changed
iOS_SDK/OneSignalSDK/Source Expand file tree Collapse file tree 3 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -38,7 +38,8 @@ NS_ASSUME_NONNULL_BEGIN
3838
3939- (void )messageViewDidSelectAction : (OSInAppMessageInternal *)message withAction : (OSInAppMessageAction *)action ;
4040- (void )messageViewDidDisplayPage : (OSInAppMessageInternal *)message withPageId : (NSString *)pageId ;
41- - (void )messageViewControllerWasDismissed ;
41+ - (void )messageViewControllerWillDismiss : (OSInAppMessageInternal *)message ;
42+ - (void )messageViewControllerWasDismissed : (OSInAppMessageInternal *)message displayed : (BOOL )displayed ;
4243- (void )webViewContentFinishedLoading : (OSInAppMessageInternal *)message ;
4344- (void )messageIsNotActive : (OSInAppMessageInternal *)message ;
4445- (void )messageWillDisplay : (OSInAppMessageInternal *)message ;
Original file line number Diff line number Diff line change @@ -431,10 +431,12 @@ - (void)dismissCurrentInAppMessage:(BOOL)up withVelocity:(double)velocity {
431431 // and we should bypass dismissal adjustments and animations and skip straight to the OSMessagingController callback for dismissing
432432 if (!self.didPageRenderingComplete ) {
433433 [self dismissViewControllerAnimated: false completion: nil ];
434- [self .delegate messageViewControllerWasDismissed ];
434+ [self .delegate messageViewControllerWasDismissed: self .message displayed: NO ];
435435 return ;
436436 }
437437
438+ [self .delegate messageViewControllerWillDismiss: self .message];
439+
438440 // Inactivate the current Y constraints
439441 self.finalYConstraint .active = false ;
440442 self.initialYConstraint .active = false ;
@@ -473,7 +475,7 @@ - (void)dismissCurrentInAppMessage:(BOOL)up withVelocity:(double)velocity {
473475 return ;
474476
475477 self.didPageRenderingComplete = false ;
476- [self .delegate messageViewControllerWasDismissed ];
478+ [self .delegate messageViewControllerWasDismissed: self .message displayed: YES ];
477479 }];
478480}
479481
@@ -754,7 +756,7 @@ - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIV
754756
755757#pragma mark OSInAppMessageViewDelegate Methods
756758- (void )messageViewFailedToLoadMessageContent {
757- [self .delegate messageViewControllerWasDismissed ];
759+ [self .delegate messageViewControllerWasDismissed: self .message displayed: NO ];
758760}
759761
760762- (void )messageViewDidFailToProcessAction {
Original file line number Diff line number Diff line change @@ -572,14 +572,17 @@ - (id)getTriggerValueForKey:(NSString *)key {
572572}
573573
574574#pragma mark OSInAppMessageViewControllerDelegate Methods
575- - (void )messageViewControllerWasDismissed {
575+ - (void )messageViewControllerWasDismissed : (OSInAppMessageInternal *) message displayed : ( BOOL ) displayed {
576576 @synchronized (self.messageDisplayQueue ) {
577577 [OneSignal onesignal_Log: ONE_S_LL_VERBOSE message: @" Dismissing IAM and preparing to show next IAM" ];
578578 // Remove DIRECT influence due to ClickHandler of ClickAction outcomes
579579 [OneSignal.sessionManager onDirectInfluenceFromIAMClickFinished ];
580580
581581 // Add current dismissed messageId to seenInAppMessages set and save it to NSUserDefaults
582582 if (self.isInAppMessageShowing ) {
583+ if (displayed) {
584+ [self onDidDismissInAppMessage: message];
585+ }
583586 OSInAppMessageInternal *showingIAM = self.messageDisplayQueue .firstObject ;
584587 [self .seenInAppMessages addObject: showingIAM.messageId];
585588 [OneSignalUserDefaults.initStandard saveSetForKey: OS_IAM_SEEN_SET_KEY withValue: self .seenInAppMessages];
@@ -601,6 +604,10 @@ - (void)messageViewControllerWasDismissed {
601604 }
602605}
603606
607+ - (void )messageViewControllerWillDismiss : (OSInAppMessageInternal *)message {
608+ [self onWillDismissInAppMessage: message];
609+ }
610+
604611- (void )evaluateMessageDisplayQueue {
605612 [OneSignal onesignal_Log: ONE_S_LL_VERBOSE message: @" Evaluating message display queue" ];
606613 // No IAMs are showing currently
You can’t perform that action at this time.
0 commit comments