最近在集成flutter进项目
创新互联是专业的德化网站建设公司,德化接单;提供成都网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行德化网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
以收集编译产物并以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的过程中 踩不少坑 也阅读很多前辈的文章,在此一并感谢
1.当我们使用flutter开发的时候 页面里面只有 initState 与dispose方法.
initState 只有进入页面的时候调用,并且在二级页面返回的时候 是不会有调用的
dispose 当页面销毁的时候 才会调用,你进入二级页面是不会调用的
综上分析者两个方法没有办法友盟页面统计分享上报
2.我们可以使用 NavigatorObserver来解决
首先新建一个 继承与NavigatorObserver的类 实现NavigatorObserver 的方法就可以了
最后我们需要再 MaterialApp里面的navigatorObservers添加监听就可以了
这时候 会有一个问题点击tabbar几个主页是没有统计的 ,我们也需要再tabbar的点击方法来进行处理
最近在写flutter应用,需要集成蓝牙功能,用了一个第三方的库,踩了一些坑,做一下记录。
这是库的地址 PhilipsHue/flutter_reactive_ble: Flutter library that handles BLE operations for multiple devices. (github.com)
安卓主要的坑就是,在使用蓝牙功能的时候,需要获取定位权限,这个需要动态获取。
集成之后,编译出错,提示Swift Compiler Error。
(1)首先尝试,修改对应三方库的Swift编译版本。
我这边尝试修改,没有成功。
(2) 没办法,我这边手动修改三方库的源码文件,进行修复。重新编译成功。
其他问题