由于颤音页面将在移动终端上启动,因此将有一个简短的空白。尽管该官员提供了引擎温暖的机制,但您需要提前预热所有页面。这种开发成本很高。在研究了怠速鱼的FlutterBoost插头之后,ISEE如果您可以自己实现一个简单的快速启动框架。
本文中使用的知识点在“扑朔迷离的混合发展:天然和扑动互动”中详细解释。您可以先阅读本文,然后阅读本文。本文不会重复这些内容,然后直接转到干货。
创建一个Flutter插件项目,添加git,然后编写三个末端代码:
首先是颤音侧的代码
1)RouteManager
它的作用是管理路由,这是一种使用地图来维护路由映射的单一情况。三个函数的三个更重要:
在这里,GetRoutefactory和GetPage共享一个路由映射,因此无论是在页面开关还是页面切换上,它都保持均匀。
2)Baseapp
这是一个抽象类,真正的扑动应用需要继承它。它主要封装了基本的gagechannel,可以与Android/iOS进行交互,并根据接收到的消息在页面上处理开关以实现快速启动。
继承它需要实现registerRoutes函数的子类,在何处使用RouteManager的寄存器路由来注册每个页面。
3)基础e
这也是一个抽象类。每个颤音页面都需要继承它。它主要处理通过两个启动方法传输的参数。它被统一为args,因此可以直接使用类别的类,而无需考虑如何开始。
接下来是插件中的Android代码
1)Bootngine
这是一种单一情况,初始化和预热flutterengine,同时创建基本的MessageChannel以进行后续交互。您需要在应用程序的启用中调用其INIT函数以初始化。
2)Flutterbootastivity
继承幻想性,提供一个构建(上下文:上下文,路由:字符串,参数:地图
iOS类似于Android
1)Flutterbootngine
Flutterbootngine.h
这也是一种初始化和启动Flutterengine的单一情况,并与扑朔迷离创建了flutterbasicmessagagannel的相互作用。
初始化iOS项目时,有必要调用其initengine功能。
2)FlutterBootViewController
FlutterbootViewController.h
还添加了一个使用路由名称和参数的构造函数,然后在ViewWillAppear时通知颤动。
请注意,如果将其更改为稍晚,则将在更新到新页面之前显示上一页,以便将其更改为ViewWillAppear。
3)FlutterBoot.H
这是Swift的桥梁文件,可以使用Swift上面定义的类。
这样,我们的插件已经开发并可以在酒吧上发布。
创建一个颤音模块,然后在pubspec.yaml中介绍我们的插件:
然后,我们开发两页用于测试。
1)firstpage.dart
仅继承基础培训和基础。单击按钮跳到第2页
2)第二页
此页面获取传递并显示的参数键。
3)主
入口继承了BaseApp并实施了寄存器路由,并注册了这两页。
请注意,OnGeneraterOute此处使用rutemanager.instance.getRoutefactory(),因此您可以一次注册而无需自己实施。
开发模块后,可以在Andorid/iOS上使用。
它在Android中相对简单。它可以在Android项目中引入。足以在Android Main Mode.gradle的构建。
请注意,插件的名称由模块中的pubspec.yaml定义。
然后,您可以在Android中使用它。首先,您必须将其初始化,如下所示:
然后在适当的情况下启动“颤音”页面,然后按以下方式启动代码:
无耻的第1页,一个码头2启动。
可以找到测试,无论打开哪个页面,它都非常快,几乎没有负载时间。这样,可以实现快速启动。
iOS侧稍微复杂一些。您需要了解iOS如何加入颤动。
我选择框架的介绍方式,因此在flutter模块项目下,按命令编译和包装框架
Flutter build build ios-framework-xcframework-no- universal-out-unidence unident-output = https://www.shouxicto.com/article/flutter/
然后将其介绍给iOS项目。与上一篇文章不同,因为插件已添加到该模块中,因此框架产品为四:
所有四个都需要引入iOS项目。
然后,AppDelegate需要继承FlutterAppDelegate(如果您不能继承它,则需要处理每个生命周期。
然后在AppDelegate中初始化,如下:
然后在正确的位置启动“扑朔迷离”页面,如下所示:
两页也分别打开。您可以看到几乎没有加载时间,并且参数也正确传递。
原始:https://juejin.cn/post/7104089894019923998