最近在集成flutter進項目
創(chuàng)新互聯(lián)是專業(yè)的德化網(wǎng)站建設(shè)公司,德化接單;提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行德化網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
以收集編譯產(chǎn)物并以cocopods方式集成
產(chǎn)物大概放入兩個pod庫
這個暫且叫pod1,pod1放flutter.framework,第三方plugin.a,自己寫的基礎(chǔ)plugin,比如networking,hud等等(由于是混編,不可避免存在很多原生基礎(chǔ)組件,所以能公用的基礎(chǔ)組件都會弄一個flutter-plugin橋接)
第二個pod2放編譯之后的app.framwork,注冊文件GeneratedPluginRegistrant,以及各個業(yè)務(wù)模塊.a(有可能沒有)結(jié)構(gòu)大概如下面
podspec大概如下
主工程引入這兩個pod庫即可
接下來從零開始搭建上文所說的
先創(chuàng)建一個flutter module
這個是主flutter工程,用來集成businessModule以及生成app.framework
結(jié)構(gòu)如下圖
再生成一個業(yè)務(wù)工程
注意此時還需要進入example生成ios和Android工程,不然無法單獨編譯運行
這樣 這個單獨的業(yè)務(wù)模塊就可以單獨跑起來了
此時主flutter工程和業(yè)務(wù)工程均搭建完畢
在主工程pubspec.ymal文件講兩個工程關(guān)聯(lián)
好了 接下來就是編寫腳本收集產(chǎn)物了
編譯完成之后會在flutter主工程product生成如下文件
將上面文件分類收集做成文章開頭的pod1,pod2 ,在native工程引入即可
在集成flutter的過程中 踩不少坑 也閱讀很多前輩的文章,在此一并感謝
1.當(dāng)我們使用flutter開發(fā)的時候 頁面里面只有 initState 與dispose方法.
initState 只有進入頁面的時候調(diào)用,并且在二級頁面返回的時候 是不會有調(diào)用的
dispose 當(dāng)頁面銷毀的時候 才會調(diào)用,你進入二級頁面是不會調(diào)用的
綜上分析者兩個方法沒有辦法友盟頁面統(tǒng)計分享上報
2.我們可以使用 NavigatorObserver來解決
首先新建一個 繼承與NavigatorObserver的類 實現(xiàn)NavigatorObserver 的方法就可以了
最后我們需要再 MaterialApp里面的navigatorObservers添加監(jiān)聽就可以了
這時候 會有一個問題點擊tabbar幾個主頁是沒有統(tǒng)計的 ,我們也需要再tabbar的點擊方法來進行處理
最近在寫flutter應(yīng)用,需要集成藍牙功能,用了一個第三方的庫,踩了一些坑,做一下記錄。
這是庫的地址 PhilipsHue/flutter_reactive_ble: Flutter library that handles BLE operations for multiple devices. (github.com)
安卓主要的坑就是,在使用藍牙功能的時候,需要獲取定位權(quán)限,這個需要動態(tài)獲取。
集成之后,編譯出錯,提示Swift Compiler Error。
(1)首先嘗試,修改對應(yīng)三方庫的Swift編譯版本。
我這邊嘗試修改,沒有成功。
(2) 沒辦法,我這邊手動修改三方庫的源碼文件,進行修復(fù)。重新編譯成功。
其他問題