先说痛点:现在Flutter web 和h5  ,如果真的在项目中结合起来,他们要起两个服务,一个H5项目,一个Flutter web项目,然后在H5中通过iframe引入Flutter web,这种方式极其不友好。

理想的方式就是,Flutter web能打包成某种web项目依赖的源码或者文件,这样只启用一个服务,并且可以在Flutter web中通过某些插件,引入js,通过一种渠道能获取到H5暴露的数据,这样才是最符合逻辑的。

我使用Flutter web,目前这种方式的问题

1.接口配置环境无法统一,因为在H5中嵌套Flutter,其根本配置文件在H5中,所以现在的做法就是读取url路径判断是否是dev环境,这是妥协方案。

2.H5  和Flutter Web  之间的通信  :

因为是通过iframe  引入的Flutter web,所以目前指通过url进行了数据的传输,也就是说,H5这边的数据,没有办法暴露并提供给Flutter web使用。目前没有好的解决方案,妥协的就是,H5通过url传参给Flutter Web,然后Flutter  Web 单独去请求接口,相当于把后端原本可以是一个接口的数据,拆分成一个H5,一个Flutter,目前看来这样也不合理

3.因为某些原因,H5中可能会有一些限制,比如是否登录,在单独测试Flutter时,还需要手动+一些token,这对于单独测试flutter web的某些功能极其不友好,甚至每次需要和H5进行结合测试。