react-native-splash-screen icon indicating copy to clipboard operation
react-native-splash-screen copied to clipboard

Hiding Splashscreen Automatically in IOS.

Open anshif10 opened this issue 2 years ago • 4 comments

  • What platform does your issue occur on? (IOS)

  • useEffect( () => { setTimeout(() => { SplashScreen.hide(); },3000); });

  • "react-native-splash-screen": "^3.3.0",

  • rn info


System:
    OS: macOS 12.4
    CPU: (8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
    Memory: 24.28 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.15.0 - /usr/local/bin/node
  Yarn: Not Found
  npm: 8.5.5 - /usr/local/bin/npm
  Watchman: 2022.09.19.00 - /usr/local/bin/watchman
Managers:
  CocoaPods: 1.11.3 - /usr/local/bin/pod
SDKs:
  iOS SDK:
    Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
  Android SDK:
    API Levels: 28, 29, 30, 31, 32, 33
    Build Tools: 23.0.1, 28.0.3, 29.0.2, 29.0.3, 30.0.2, 30.0.3, 31.0.0, 32.0.0, 32.1.0, 33.0.0
    System Images: android-29 | Intel x86 Atom_64, android-29 | Google APIs Intel x86 Atom, android-30 | Intel x86 Atom_64, android-31 | Google APIs Intel x86 Atom_64, android-Tiramisu | Google APIs Intel x86 Atom_64
    Android NDK: Not Found
IDEs:
  Android Studio: 2021.3 AI-213.7172.25.2113.9123335
  Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild
Languages:
  Java: 11.0.15 - /usr/bin/javac
npmPackages:
  @react-native-community/cli: ^9.2.1 => 9.3.2 
  react: 18.1.0 => 18.1.0 
  react-native: ^0.70.5 => 0.70.6 
  react-native-macos: Not Found
npmGlobalPackages:
  *react-native*: Not Found

anshif10 avatar Dec 06 '22 07:12 anshif10

Same issue here, Splash Screen did not wait until "hide" function call and its hide automatically. Don't matter in IOS or Android. Any solutions for this issue?

clay-aiken avatar Jan 31 '23 03:01 clay-aiken

Any update here??

thisisadarshjais avatar Aug 11 '23 11:08 thisisadarshjais

I think you have forgot the native setup.

#import "AppDelegate.h"
#import <Firebase.h>
#import "RNSplashScreen.h"
#import <React/RCTBundleURLProvider.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  self.moduleName = @"TrueCaller";
  // 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 = @{};
  [FIRApp configure];
  bool didFinish=[super application:application didFinishLaunchingWithOptions:launchOptions]; // added 
  [RNSplashScreen show];  // here
  return didFinish; // added 
}

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
#else
  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}

@end

zoobibackups avatar Sep 07 '23 09:09 zoobibackups

One observation I have on the iOS simulator. If you press "R" on the metro terminal to reload the app, it will autohide without waiting for the SplashScreen.hide() to be called. If you kill the app and relaunch instead of reloading, it will wait for the hide function to be called. Which should be fine given that you can only reload the app in this flow during development.

abh1abii avatar Mar 21 '24 03:03 abh1abii