我目前遇到一个问题,在 iOS 上加载 React Native 应用程序时,启动屏幕只会出现一秒钟,然后就会变成白色。我在 React Native 文档中看到了一个解决方案,但它似乎已经过时了。不再有 AppDelegate.m 只是一个 AppDelegate.mm。
文档“随着您的 App Bundle 大小的增大,您可能会开始看到启动屏幕和根应用程序视图的显示之间出现空白屏幕。如果是这种情况,您可以将以下代码添加到 AppDelegate。 m 以便在转换过程中保持启动屏幕显示。”
// Place this code after "[self.window makeKeyAndVisible]" and before "return YES;"
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"LaunchScreen" bundle:nil];
UIViewController *vc = [sb instantiateInitialViewController];
rootView.loadingView = vc.view;
有现代的解决方案吗?我试着环顾四周,但什么也没看到。
这也是我的 AppDelegate.mm。
#import "AppDelegate.h"
#import <React/RCTBundleURLProvider.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.moduleName = @"ProjectMarlin";
// You can add your custom initial props in the dictionary below.
// They will be passed down to the ViewController used by React Native.
self.initialProps = @{};
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
#else
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}
@end