
正文
flutter路由坑,flutter路由框架
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
ios flutter 混编
最近在集成flutter进项目
以收集编译产物并以cocopods方式集成
产物大概放入两个pod库
这个暂且叫pod1,pod1放flutter.framework,第三方plugin.a,自己写的基础plugin,比如networking,hud等等(由于是混编,不可避免存在很多原生基础组件,所以能公用的基础组件都会弄一个flutter-plugin桥接)
第二个pod2放编译之后的app.framwork,注册文件GeneratedPluginRegistrant,以及各个业务模块.a(有可能没有)结构大概如下面
podspec大概如下
主工程引入这两个pod库即可
接下来从零开始搭建上文所说的
先创建一个flutter module
这个是主flutter工程,用来集成businessModule以及生成app.framework
结构如下图
再生成一个业务工程
注意此时还需要进入example生成ios和Android工程,不然无法单独编译运行
这样 这个单独的业务模块就可以单独跑起来了
此时主flutter工程和业务工程均搭建完毕
在主工程pubspec.ymal文件讲两个工程关联
好了 接下来就是编写脚本收集产物了
编译完成之后会在flutter主工程product生成如下文件
将上面文件分类收集做成文章开头的pod1,pod2 ,在native工程引入即可
在集成flutter的过程中 踩不少坑 也阅读很多前辈的文章,在此一并感谢
相关问答
Q1: flutter 路由监听友盟页面统计方案
1.当我们使用flutter开发的时候 页面里面只有 initState 与dispose方法.
initState 只有进入页面的时候调用,并且在二级页面返回的时候 是不会有调用的
dispose 当页面销毁的时候 才会调用,你进入二级页面是不会调用的
综上分析者两个方法没有办法友盟页面统计分享上报
2.我们可以使用 NavigatorObserver来解决
首先新建一个 继承与NavigatorObserver的类 实现NavigatorObserver 的方法就可以了
最后我们需要再 MaterialApp里面的navigatorObservers添加监听就可以了
这时候 会有一个问题点击tabbar几个主页是没有统计的 ,我们也需要再tabbar的点击方法来进行处理
Q2: Flutter 集成第三方蓝牙库踩坑记录
最近在写flutter应用,需要集成蓝牙功能,用了一个第三方的库,踩了一些坑,做一下记录。
这是库的地址 PhilipsHue/flutter_reactive_ble: Flutter library that handles BLE operations for multiple devices. (github.com)
安卓主要的坑就是,在使用蓝牙功能的时候,需要获取定位权限,这个需要动态获取。
集成之后,编译出错,提示Swift Compiler Error。
(1)首先尝试,修改对应三方库的Swift编译版本。
我这边尝试修改,没有成功。
(2) 没办法,我这边手动修改三方库的源码文件,进行修复。重新编译成功。
其他问题





