原由:项目中使用了flutter_boost,发现侧滑时直接将flutter的整个VC给pop掉了,demo中flutter代码跳转到新的页面也是使用openPage的方式打开,所以没有这个问题,可是咱们不但愿每个新的flutter都使用openPage方式打开(一是每次都新建一个VC浪费性能,二是会有闪烁的状况出现),通过几天时间不断验证改造,终于能够算是阶段性地解决了这个问题,在此作个记录。git
先看改造后增长的流程: github
下面是具体增长的点bash
一、增长了一个导航的监听,每次push和pop时都将flutter页面的canPop值通知到原生。性能
二、增长了一个原生方法回调,原生调用时会通知原生界面当前的flutter页面是否能够pop。spa
一、在FLBPlatform中增长方法(接收到flutter对应的方法时会调用):code
- (void)flutterCanPop:(BOOL)canpop;
复制代码
二、在FLBFlutterViewController的showFlutterView(至关于viewWillAppear)方法中增长获取flutter的canPop的方法。orm
三、增长flutterCanPop对应的接收类NavigationService_flutterCanPop
cdn
将原来有flutter跳转flutter页面方式由openPage方式改成Router方式。blog
目前已经改造的代码已合并到flutter_boost工程中。get