1 #import <React/RCTBridgeModule.h> 2 #import <React/RCTBridgeDelegate.h> 3 4 #import <UIKit/UIKit.h> 5 6 // When `use_frameworks!` is used, the generated Swift header is inside modules. 7 // Otherwise, it's available only locally with double-quoted imports. 8 #if __has_include(<EXUpdatesInterface/EXUpdatesInterface-Swift.h>) 9 #import <EXUpdatesInterface/EXUpdatesInterface-Swift.h> 10 #else 11 #import "EXUpdatesInterface-Swift.h" 12 #endif 13 #if __has_include(<EXManifests/EXManifests-Swift.h>) 14 #import <EXManifests/EXManifests-Swift.h> 15 #else 16 #import "EXManifests-Swift.h" 17 #endif 18 19 NS_ASSUME_NONNULL_BEGIN 20 21 @class EXDevLauncherInstallationIDHelper; 22 @class EXDevLauncherPendingDeepLinkRegistry; 23 @class EXDevLauncherRecentlyOpenedAppsRegistry; 24 @class EXDevLauncherController; 25 @class EXDevLauncherErrorManager; 26 27 @protocol EXDevLauncherControllerDelegate <NSObject> 28 29 - (void)devLauncherController:(EXDevLauncherController *)developmentClientController 30 didStartWithSuccess:(BOOL)success; 31 32 @end 33 34 @interface EXDevLauncherController : NSObject <RCTBridgeDelegate> 35 36 @property (nonatomic, weak) RCTBridge * _Nullable appBridge; 37 @property (nonatomic, strong) RCTBridge *launcherBridge; 38 @property (nonatomic, strong) EXDevLauncherPendingDeepLinkRegistry *pendingDeepLinkRegistry; 39 @property (nonatomic, strong) EXDevLauncherRecentlyOpenedAppsRegistry *recentlyOpenedAppsRegistry; 40 @property (nonatomic, strong) id updatesInterface; 41 @property (nonatomic, readonly, assign) BOOL isStarted; 42 43 + (instancetype)sharedInstance; 44 45 - (void)startWithWindow:(UIWindow *)window delegate:(id<EXDevLauncherControllerDelegate>)delegate launchOptions:(NSDictionary * _Nullable)launchOptions; 46 47 - (void)autoSetupPrepare:(id<EXDevLauncherControllerDelegate>)delegate launchOptions:(NSDictionary * _Nullable)launchOptions; 48 49 - (void)autoSetupStart:(UIWindow *)window; 50 51 - (nullable NSURL *)sourceUrl; 52 53 - (void)navigateToLauncher; 54 55 - (BOOL)onDeepLink:(NSURL *)url options:(NSDictionary *)options; 56 57 - (void)loadApp:(NSURL *)url onSuccess:(void (^ _Nullable)(void))onSuccess onError:(void (^ _Nullable)(NSError *error))onError; 58 59 - (void)loadApp:(NSURL *)expoUrl withProjectUrl:(NSURL * _Nullable)projectUrl onSuccess:(void (^ _Nullable)(void))onSuccess onError:(void (^ _Nullable)(NSError *error))onError; 60 61 - (NSDictionary *)recentlyOpenedApps; 62 63 - (void)clearRecentlyOpenedApps; 64 65 - (NSDictionary *)getLaunchOptions; 66 67 - (EXManifestsManifest * _Nullable)appManifest; 68 69 - (NSURL * _Nullable)appManifestURL; 70 71 - (nullable NSURL *)appManifestURLWithFallback; 72 73 - (BOOL)isAppRunning; 74 75 - (BOOL)isStarted; 76 77 - (UIWindow * _Nullable)currentWindow; 78 79 - (EXDevLauncherErrorManager *)errorManager; 80 81 - (EXDevLauncherInstallationIDHelper *)installationIDHelper; 82 83 + (NSString * _Nullable)version; 84 85 - (NSDictionary *)getBuildInfo; 86 87 - (void)copyToClipboard:(NSString *)content; 88 89 - (NSDictionary *)getUpdatesConfig; 90 91 @end 92 93 NS_ASSUME_NONNULL_END 94