tal-tech / d_stack

A Flutter hybrid stack solution
MIT License
106 stars 37 forks source link

flutter调用pop方法后,在iOS系统上无法获取到pop的返回值 #11

Closed huyidada closed 3 years ago

huyidada commented 3 years ago

如题: flutter调用pop方法后,在iOS系统上无法获取到pop的返回值 flutter版本:1.22.5 dstack版本:1.3.1 iOS版本:14

这样修改: image 后就可以获取到了

whqfor commented 3 years ago

这块主要是之前考虑到iOS和flutter 系统api不一致,因为iOS原生Pop时不能传值,而Flutter是可以的,并且考虑到flutter内传值的可能传model,这样无法直接向native传,当然这块可以对值类型加一些限制,比如传参只能传Map类型。但是这样就将Fluter原有能力给限制住了,因此开发的时候就暂时舍弃了混合栈返回页面时的传参,如果有需求的话建议是通过channel做返回传参。这样和iOS原生也是一致的。

huyidada commented 3 years ago

这块主要是之前考虑到iOS和flutter 系统api不一致,因为iOS原生Pop时不能传值,而Flutter是可以的,并且考虑到flutter内传值的可能传model,这样无法直接向native传,当然这块可以对值类型加一些限制,比如传参只能传Map类型。但是这样就将Fluter原有能力给限制住了,因此开发的时候就暂时舍弃了混合栈返回页面时的传参,如果有需求的话建议是通过channel做返回传参。这样和iOS原生也是一致的。

这边Android是可以支持的,在d_stack v1.3之前是可以支持的,我的建议是不要进行舍弃,可以判断是否为Map,为Map时就可以支持传参。

whqfor commented 3 years ago

嗯,这样折中也是一种方式,下个版本加上去,至少双端保持一致

whqfor commented 3 years ago

针对这个修改已经更新1.3.1+1,iOS端pop无法传参问题已经修复