【Flutter】修改flutter_boost,兼容iOS侧滑的一个解决方案

起因:项目中使用了flutter_boost,发现侧滑时直接将flutter的整个VC给pop掉了,demo中flutter代码跳转到新的页面也是使用openPage的方式打开,因此没有这个问题,但是我们不希望每一个新的flutter都使用openPage方式打开(一是每次都新建一个VC浪费性能,二是会有闪烁的情况出现),经过几天时间不断验证改造,终于可以算是阶段性地解决了这个问题,在此做个记录。

具体方案

先看改造后增加的流程:

下面是具体增加的点

flutter方面

1、增加了一个导航的监听,每次push和pop时都将flutter页面的canPop值通知到原生。

2、增加了一个原生方法回调,原生调用时会通知原生界面当前的flutter页面是否可以pop。

iOS方面

1、在FLBPlatform中增加方法(接收到flutter对应的方法时会调用):

- (void)flutterCanPop:(BOOL)canpop;
复制代码

2、在FLBFlutterViewController的showFlutterView(相当于viewWillAppear)方法中增加获取flutter的canPop的方法。

3、增加flutterCanPop对应的接收类NavigationService_flutterCanPop

Demo中

将原来有flutter跳转flutter页面方式由openPage方式改为Router方式。

修改后的效果

目前已经改造的代码已提交给flutter_boost~~希望能帮到大家~

转载于:https://juejin.im/post/5cf8e4b96fb9a07ed440f1d8

猜你喜欢

转载自blog.csdn.net/weixin_34146410/article/details/91467539