mirror of
				https://gitcode.com/gh_mirrors/re/react-native-pushy.git
				synced 2025-10-31 21:33:12 +08:00 
			
		
		
		
	feat: CI测试
This commit is contained in:
		
							
								
								
									
										133
									
								
								Example/testHotUpdate/ios/AwesomeProject/AppDelegate.mm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								Example/testHotUpdate/ios/AwesomeProject/AppDelegate.mm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,133 @@ | ||||
| #import "AppDelegate.h" | ||||
|  | ||||
| #import <React/RCTBridge.h> | ||||
| #import <React/RCTBundleURLProvider.h> | ||||
| #import <React/RCTRootView.h> | ||||
|  | ||||
| #import <React/RCTAppSetupUtils.h> | ||||
|  | ||||
| #if RCT_NEW_ARCH_ENABLED | ||||
| #import <React/CoreModulesPlugins.h> | ||||
| #import <React/RCTCxxBridgeDelegate.h> | ||||
| #import <React/RCTFabricSurfaceHostingProxyRootView.h> | ||||
| #import <React/RCTSurfacePresenter.h> | ||||
| #import <React/RCTSurfacePresenterBridgeAdapter.h> | ||||
| #import <ReactCommon/RCTTurboModuleManager.h> | ||||
|  | ||||
| #import <react/config/ReactNativeConfig.h> | ||||
|  | ||||
| static NSString *const kRNConcurrentRoot = @"concurrentRoot"; | ||||
|  | ||||
| @interface AppDelegate () <RCTCxxBridgeDelegate, RCTTurboModuleManagerDelegate> { | ||||
|   RCTTurboModuleManager *_turboModuleManager; | ||||
|   RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; | ||||
|   std::shared_ptr<const facebook::react::ReactNativeConfig> _reactNativeConfig; | ||||
|   facebook::react::ContextContainer::Shared _contextContainer; | ||||
| } | ||||
| @end | ||||
| #endif | ||||
|  | ||||
| @implementation AppDelegate | ||||
|  | ||||
| - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | ||||
| { | ||||
|   RCTAppSetupPrepareApp(application); | ||||
|  | ||||
|   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; | ||||
|  | ||||
| #if RCT_NEW_ARCH_ENABLED | ||||
|   _contextContainer = std::make_shared<facebook::react::ContextContainer const>(); | ||||
|   _reactNativeConfig = std::make_shared<facebook::react::EmptyReactNativeConfig const>(); | ||||
|   _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); | ||||
|   _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; | ||||
|   bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; | ||||
| #endif | ||||
|  | ||||
|   NSDictionary *initProps = [self prepareInitialProps]; | ||||
|   UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"AwesomeProject", initProps); | ||||
|  | ||||
|   if (@available(iOS 13.0, *)) { | ||||
|     rootView.backgroundColor = [UIColor systemBackgroundColor]; | ||||
|   } else { | ||||
|     rootView.backgroundColor = [UIColor whiteColor]; | ||||
|   } | ||||
|  | ||||
|   self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | ||||
|   UIViewController *rootViewController = [UIViewController new]; | ||||
|   rootViewController.view = rootView; | ||||
|   self.window.rootViewController = rootViewController; | ||||
|   [self.window makeKeyAndVisible]; | ||||
|   return YES; | ||||
| } | ||||
|  | ||||
| /// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. | ||||
| /// | ||||
| /// @see: https://reactjs.org/blog/2022/03/29/react-v18.html | ||||
| /// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). | ||||
| /// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`. | ||||
| - (BOOL)concurrentRootEnabled | ||||
| { | ||||
|   // Switch this bool to turn on and off the concurrent root | ||||
|   return true; | ||||
| } | ||||
|  | ||||
| - (NSDictionary *)prepareInitialProps | ||||
| { | ||||
|   NSMutableDictionary *initProps = [NSMutableDictionary new]; | ||||
|  | ||||
| #ifdef RCT_NEW_ARCH_ENABLED | ||||
|   initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]); | ||||
| #endif | ||||
|  | ||||
|   return initProps; | ||||
| } | ||||
|  | ||||
| - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge | ||||
| { | ||||
| #if DEBUG | ||||
|   return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; | ||||
| #else | ||||
|   return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| #if RCT_NEW_ARCH_ENABLED | ||||
|  | ||||
| #pragma mark - RCTCxxBridgeDelegate | ||||
|  | ||||
| - (std::unique_ptr<facebook::react::JSExecutorFactory>)jsExecutorFactoryForBridge:(RCTBridge *)bridge | ||||
| { | ||||
|   _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge | ||||
|                                                              delegate:self | ||||
|                                                             jsInvoker:bridge.jsCallInvoker]; | ||||
|   return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); | ||||
| } | ||||
|  | ||||
| #pragma mark RCTTurboModuleManagerDelegate | ||||
|  | ||||
| - (Class)getModuleClassFromName:(const char *)name | ||||
| { | ||||
|   return RCTCoreModulesClassProvider(name); | ||||
| } | ||||
|  | ||||
| - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name | ||||
|                                                       jsInvoker:(std::shared_ptr<facebook::react::CallInvoker>)jsInvoker | ||||
| { | ||||
|   return nullptr; | ||||
| } | ||||
|  | ||||
| - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name | ||||
|                                                      initParams: | ||||
|                                                          (const facebook::react::ObjCTurboModule::InitParams &)params | ||||
| { | ||||
|   return nullptr; | ||||
| } | ||||
|  | ||||
| - (id<RCTTurboModule>)getModuleInstanceFromClass:(Class)moduleClass | ||||
| { | ||||
|   return RCTAppSetupDefaultModuleFromClass(moduleClass); | ||||
| } | ||||
|  | ||||
| #endif | ||||
|  | ||||
| @end | ||||
		Reference in New Issue
	
	Block a user
	 steven
					steven