先说痛点:现在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进行结合测试。