7070NSString * const BRANCH_INIT_KEY_IS_FIRST_SESSION = @" +is_first_session" ;
7171NSString * const BRANCH_INIT_KEY_CLICKED_BRANCH_LINK = @" +clicked_branch_link" ;
7272static NSString * const BRANCH_PUSH_NOTIFICATION_PAYLOAD_KEY = @" branch" ;
73+ static NSString * const BRANCH_DEFER_INIT_FOR_PLUGIN_RUNTIME_KEY = @" deferInitForPluginRuntime" ;
7374
7475NSString * const BNCCanonicalIdList = @" $canonical_identifier_list" ;
7576NSString * const BNCPurchaseAmount = @" $amount" ;
@@ -615,9 +616,15 @@ - (void)initSessionWithLaunchOptions:(NSDictionary *)options isReferrable:(BOOL)
615616
616617- (void )initSceneSessionWithLaunchOptions : (NSDictionary *)options isReferrable : (BOOL )isReferrable explicitlyRequestedReferrable : (BOOL )explicitlyRequestedReferrable automaticallyDisplayController : (BOOL )automaticallyDisplayController
617618 registerDeepLinkHandler : (void (^)(BNCInitSessionResponse * _Nullable initResponse, NSError * _Nullable error))callback {
619+ NSMutableDictionary * optionsWithDeferredInit = [[NSMutableDictionary alloc ] initWithDictionary: options];
620+ if (self.deferInitForPluginRuntime ) {
621+ [optionsWithDeferredInit setObject: @1 forKey: @" BRANCH_DEFER_INIT_FOR_PLUGIN_RUNTIME_KEY" ];
622+ } else {
623+ [optionsWithDeferredInit setObject: @0 forKey: @" BRANCH_DEFER_INIT_FOR_PLUGIN_RUNTIME_KEY" ];
624+ }
618625 [self deferInitBlock: ^{
619626 self.sceneSessionInitWithCallback = callback;
620- [self initSessionWithLaunchOptions: options isReferrable: isReferrable explicitlyRequestedReferrable: explicitlyRequestedReferrable automaticallyDisplayController: automaticallyDisplayController];
627+ [self initSessionWithLaunchOptions: ( NSDictionary *)optionsWithDeferredInit isReferrable: isReferrable explicitlyRequestedReferrable: explicitlyRequestedReferrable automaticallyDisplayController: automaticallyDisplayController];
621628 }];
622629}
623630
@@ -642,7 +649,9 @@ - (void)initSessionWithLaunchOptions:(NSDictionary *)options
642649 }
643650 #endif
644651
645- [self initUserSessionAndCallCallback: YES sceneIdentifier: nil urlString: pushURL reset: NO ];
652+ if (pushURL || [[options objectForKey: @" BRANCH_DEFER_INIT_FOR_PLUGIN_RUNTIME_KEY" ] isEqualToNumber: @1 ] || (![options.allKeys containsObject: UIApplicationLaunchOptionsURLKey] && ![options.allKeys containsObject: UIApplicationLaunchOptionsUserActivityDictionaryKey]) ) {
653+ [self initUserSessionAndCallCallback: YES sceneIdentifier: nil urlString: pushURL reset: NO ];
654+ }
646655}
647656
648657- (void )setDeepLinkDebugMode : (NSDictionary *)debugParams {
0 commit comments