使用flutter_native_splash替换启动图片,iOS端替换不成功

今天在使用flutter_native_splash插件替换启动图片的时候,Android手机能替换成功,但是iOS端却依旧显示的旧图片,最后手动配置iOS端的启动页也不好使,即使在整个项目中,已经把就图片删除了,依然不好使,后来查了资料,才知道是因为Apple的LaunchStoryboard.storyboard缓存的原因。
由于Apple废弃了LaunchImage,采用Launch Screen的方式来处理启动页,然而Launch Screen是有缓存的,替换新的启动页并不会成功,包括但不限于(重启Xcode、清理Xcode缓存、卸载APP、更改图片名称、启用代码FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")手动删除缓存)都没有效果,
这是删除缓存的代码,不信的同学可以自己试试,反正我是没有成功。

public extension UIApplication {

    func clearLaunchScreenCache() {
        do {
            try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")
        } catch {
            print("Failed to delete launch screen cache: \(error)")
        }
    }

}

经过我反复的尝试,发现目前想要解决这个问题,有两个办法:

1、删除App+重启手机;

这个方法有个弊端,就是如果有人安装了app,需要更新新版本的时候,启动页依旧不会替换,你总不能让所有安装了app的人都关机重启吧,这也不现实。

2、重新创建一个新的LaunchScreen.storyboard,比如命名为NewLaunchScreen.storyboard,在General里面设置Launch Screen File为这个新的NewLaunchScreen.storyboard,重新命名启动图片名称(比如原来启动页叫LaunchImage.png,现在叫NewLaunchImage.png),把这个图片放到工程文件夹下,不要放到Assets里面,然后在NewLaunchScreen添加imageView,设置约束添加新命名的图片

我在项目中采用的是第二个方法,目测有效,希望能帮到你!!简书地址

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
flutter_downloader是一个用于在Flutter应用程序中进行文件下载的插件。它提供了一种简单而强大的方式来管理和监控文件下载任务。 使用flutter_downloader,你可以轻松地添加文件下载功能到你的Flutter应用程序中。它支持多个平台,包括Android和iOS,并且提供了一组易于使用的API来管理下载任务。 要使用flutter_downloader,首先需要在你的Flutter项目中添加依赖。在pubspec.yaml文件中,添加以下内容: ``` dependencies: flutter_downloader: ^1.6.0 ``` 然后运行`flutter pub get`命令来获取依赖。 接下来,在你的代码中导入flutter_downloader包,并使用它来创建和管理下载任务。你可以使用`FlutterDownloader.enqueue`方法来创建一个下载任务,并传递下载链接、保存路径等参数。你还可以使用`FlutterDownloader.open`方法来打开已下载的文件。 以下是一个简单的示例代码,演示了如何使用flutter_downloader进行文件下载: ```dart import 'package:flutter/material.dart'; import 'package:flutter_downloader/flutter_downloader.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('File Downloader'), ), body: Center( child: RaisedButton( child: Text('Download File'), onPressed: () { _startDownload(); }, ), ), ), ); } void _startDownload() async { String url = 'https://example.com/file.pdf'; String savedDir = '/storage/emulated/0/Download'; await FlutterDownloader.enqueue( url: url, savedDir: savedDir, showNotification: true, openFileFromNotification: true, ); } } ``` 这是一个简单的示例,当用户点击按钮时,会触发文件下载任务。下载的文件将保存在指定的目录中,并且会显示下载通知。用户可以通过通知来打开已下载的文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值