Flutter Native SplashScreens 后台进程

Flutter Native SplashScreens Background processes

我已经为 iOS 和 Android 的 Flutter 应用创建了 SplashScreens,使用的是编辑 LaunchScreen.storyboard 的本机方式,当我 运行 我的应用程序,但 SplashScreen 没有保持足够长的时间,有没有办法在我完成一些数据处理和逻辑后以编程方式隐藏 dart 中的本机启动画面?

我在网上找到的解决方案都是带有 SplashScreen 的 flutter 应用程序,它们是使用 flutter widgets 而不是本机方式构建的...

即使你在 Flutter 中构建启动画面,你仍然需要通过 XCode 设置一个。否则,应用加载时会出现短暂的计划白屏,Apple 会拒绝它。

如果你想延长时间直到数据处理结束,那么你将不得不在 Flutter 中复制 LaunchScreen.storyboard。数据处理和逻辑都是用Flutter写的。它无法告诉 LaunchScreen.storyboard "I am done"。不过,您可以做的是,在 Flutter 中制作一个启动画面,看起来像 LaunchScreen.storyboard。一旦数据处理完成,您就可以将用户导航到所需的屏幕。由于两个屏幕相同,使用起来不会有任何区别,应用程序会顺利显示下一屏幕。

请注意 - 小心延长启动屏幕的时间。 Apple 可能会拒绝该应用程序。看看屏幕加载后是否可以做些什么。您可以为此使用 flutter after layout 包,或者下面一行就可以解决问题:

WidgetsBinding.instance
        .addPostFrameCallback((_) => myFunction(context));

线程可能会帮助您延迟屏幕 XX 秒。