1 // Copyright 2015-present 650 Industries. All rights reserved.
2 //
3 // Contains logic for figuring out how to take care of deep links.
4 
5 #import "EXLinkingManager.h"
6 #import "EXReactAppManager.h"
7 #import "EXUtil.h"
8 
9 @interface EXKernelLinkingManager : NSObject
10   <EXLinkingManagerScopedModuleDelegate, EXUtilScopedModuleDelegate>
11 
12 /**
13  *  Either opens the url on an existing bridge, or sends it to the kernel
14  *  for opening on a new bridge.
15  */
16 - (void)openUrl:(NSString *)urlString isUniversalLink:(BOOL)isUniversalLink;
17 
18 /**
19  *  Returns the deep link prefix for a given experience uri.
20  */
21 + (NSString *)linkingUriForExperienceUri:(NSURL *)uri;
22 
23 /**
24  *  Normalize a uri and (if needed) subtitute
25  *  standalone-app-specific deep link formatting.
26  */
27 + (NSURL *)uriTransformedForLinking:(NSURL *)uri isUniversalLink:(BOOL)isUniversalLink;
28 
29 + (NSString *)stringByRemovingDeepLink:(NSString *)path;
30 
31 # pragma mark - app-wide linking handlers
32 
33 + (BOOL)application:(UIApplication *)application
34             openURL:(NSURL *)URL
35   sourceApplication:(NSString *)sourceApplication
36          annotation:(id)annotation;
37 
38 + (BOOL)application:(UIApplication *)application
39 continueUserActivity:(NSUserActivity *)userActivity
40  restorationHandler:(void (^)(NSArray *))restorationHandler;
41 
42 + (NSURL *)initialUrlFromLaunchOptions: (NSDictionary *)launchOptions;
43 
44 @end
45