Flutter 应用启动从闪屏页短暂黑屏再到第一个页面

由于应用初始状态启动会有白屏现象,便使用 flutter_native_splash 2.3.5 插件生成了启动相关的配置,并且按照示例使用了

dart 复制代码
import 'package:flutter_native_splash/flutter_native_splash.dart';

void main() {
  WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
  FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
  runApp(const MyApp());
}

// whenever your initialization is completed, remove the splash screen:
FlutterNativeSplash.remove();

我实际想要的页面顺序是这样的:原生闪屏页 --> Flutter Page闪屏页 --> 首页/登录页

但实际在Android设备和iOS设备上都出现了同一个情况:应用闪屏页 --> 短暂黑屏 --> 开屏页。因为插件的示例是没有这个情况的于是我下载源码对比了一下,解决了这两个问题

  1. Android、iOS均有此现象:
    FlutterNativeSplash.preserveFlutterNativeSplash.remove() 不能过近,也就是说 remove方法基本上需要放到 Splash 的页面去执行,而且在这之前需要适当进行 1-3 秒的延时,如果顺序调用会出现这种情况

  2. 做完上面的处理后,Android正常,iOS仍有此现象:

    首先在XCode内打开项目配置面板,找到 targets -> General -> App Icons and Launch Screen,把 Launch Screen File 选项填的内容置空

然后到 ios/Runner/info.plist 文件内,修改 UILaunchStoryboardName 字段的值为 LaunchScreen,如果你的启动页文件不是这个名字需要改成实际文件的名字,不需要后缀,然后重新编译运行就OK了

相关推荐
2501_91592143几秒前
VSCode 写 Swift 运行到 iPhone?快蝎 IDE 开发实战体验
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
叶羽西9 分钟前
Android15 Media框架JNI Interface调试
android
spencer_tseng19 分钟前
anti-screenshot (Android + iOS)
android·ios
程序员Android28 分钟前
Android 相机MFNR 拍照trace 分析
android·数码相机
2501_9159184129 分钟前
基于Mach-O文件的动态库与静态库归属方案及API扫描实践
android·ios·小程序·https·uni-app·iphone·webview
踏雪羽翼29 分钟前
android 实现google 订阅支付
android·支付·订阅·google订阅·谷歌支付
2501_9151063232 分钟前
iOS 证书无法跨电脑使用?签名迁移方法一文讲透
android·ios·小程序·https·uni-app·iphone·webview
Kapaseker36 分钟前
Window 内外藏机巧 旧岗新页见真章
android·kotlin
谪星·阿凯44 分钟前
从XXE遗留疑问到Upload-Labs全通关:文件上传漏洞的溯源与实战突破
android·计算机网络
星轨初途1 小时前
C++ 类和对象(下):初始化列表、static 成员与编译器优化深度剖析
android·开发语言·c++·经验分享·笔记