美文网首页Flutter
使用flutter_native_splash替换启动图片,iO

使用flutter_native_splash替换启动图片,iO

作者: Tomous | 来源:发表于2023-08-14 11:18 被阅读0次

    今天在使用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,设置约束添加新命名的图片

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

    相关文章

      网友评论

        本文标题:使用flutter_native_splash替换启动图片,iO

        本文链接:https://www.haomeiwen.com/subject/rrxcmdtx.html