Skip to content

Commit d7c42ca

Browse files
committed
refactor: simplify UIScene handling for deep links in AppsflyerSdkPlugin
1 parent a523ad9 commit d7c42ca

1 file changed

Lines changed: 5 additions & 24 deletions

File tree

ios/Classes/AppsflyerSdkPlugin.m

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -970,33 +970,14 @@ - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserAct
970970
#if __has_include(<Flutter/FlutterSceneLifeCycleDelegate.h>)
971971
#pragma mark - FlutterSceneLifeCycleDelegate
972972

973-
// UIScene-based URI-scheme deep links (iOS 13+, Flutter 3.41+ UIScene migration)
974-
- (BOOL)scene:(UIScene*)scene openURLContexts:(NSSet<UIOpenURLContext*>*)URLContexts API_AVAILABLE(ios(13.0)) {
975-
for (UIOpenURLContext *context in URLContexts) {
976-
NSDictionary *opts = @{};
977-
if (context.options.sourceApplication) {
978-
opts = @{UIApplicationOpenURLOptionsSourceApplicationKey: context.options.sourceApplication};
979-
}
980-
[[AppsFlyerAttribution shared] handleOpenUrl:context.URL options:opts];
981-
}
982-
return NO;
983-
}
984-
985973
// Cold-start deep links delivered via UISceneConnectionOptions (iOS 13+)
986-
// Handles both URI-scheme links (URLContexts) and Universal Links (userActivities)
987974
- (BOOL)scene:(UIScene*)scene
988975
willConnectToSession:(UISceneSession*)session
989-
options:(UISceneConnectionOptions*)connectionOptions API_AVAILABLE(ios(13.0)) {
990-
for (UIOpenURLContext *context in connectionOptions.URLContexts) {
991-
NSDictionary *opts = @{};
992-
if (context.options.sourceApplication) {
993-
opts = @{UIApplicationOpenURLOptionsSourceApplicationKey: context.options.sourceApplication};
994-
}
995-
[[AppsFlyerAttribution shared] handleOpenUrl:context.URL options:opts];
996-
}
997-
for (NSUserActivity *activity in connectionOptions.userActivities) {
998-
if ([activity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
999-
[[AppsFlyerAttribution shared] continueUserActivity:activity restorationHandler:nil];
976+
options:(nullable UISceneConnectionOptions*)connectionOptions API_AVAILABLE(ios(13.0)) {
977+
if ([scene isKindOfClass:[UIWindowScene class]]) {
978+
NSUserActivity *userActivity = connectionOptions.userActivities.allObjects.firstObject;
979+
if (userActivity) {
980+
[self scene:scene continueUserActivity:userActivity];
1000981
}
1001982
}
1002983
return NO;

0 commit comments

Comments
 (0)