123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
- #import "AppDelegate.h"
-
- #import <React/RCTBundleURLProvider.h>
- #import <React/RCTRootView.h>
-
- #import <UMCore/UMModuleRegistry.h>
- #import <UMReactNativeAdapter/UMNativeModulesProxy.h>
- #import <UMReactNativeAdapter/UMModuleRegistryAdapter.h>
-
- @interface AppDelegate ()
-
- @property (nonatomic, strong) NSDictionary *launchOptions;
-
- @end
-
- @implementation AppDelegate
-
- @synthesize window = _window;
-
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- {
- self.moduleRegistryAdapter = [[UMModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[UMModuleRegistryProvider alloc] init]];
- self.launchOptions = launchOptions;
-
- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
- #ifdef DEBUG
- [self initializeReactNativeApp];
- #else
- EXUpdatesAppController *controller = [EXUpdatesAppController sharedInstance];
- controller.delegate = self;
- [controller startAndShowLaunchScreen:self.window];
- #endif
-
- [super application:application didFinishLaunchingWithOptions:launchOptions];
-
- return YES;
- }
-
- - (RCTBridge *)initializeReactNativeApp
- {
- RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:self.launchOptions];
- RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"main" initialProperties:nil];
- rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
-
- UIViewController *rootViewController = [UIViewController new];
- rootViewController.view = rootView;
- self.window.rootViewController = rootViewController;
- [self.window makeKeyAndVisible];
-
- return bridge;
- }
-
- - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge
- {
- NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge];
- // You can inject any extra modules that you would like here, more information at:
- // https://facebook.github.io/react-native/docs/native-modules-ios.html#dependency-injection
- return extraModules;
- }
-
- - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {
- #ifdef DEBUG
- return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
- #else
- return [[EXUpdatesAppController sharedInstance] launchAssetUrl];
- #endif
- }
-
- - (void)appController:(EXUpdatesAppController *)appController didStartWithSuccess:(BOOL)success
- {
- appController.bridge = [self initializeReactNativeApp];
- }
-
- @end
|