最近在集成flutter進(jìn)項(xiàng)目

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),石鼓企業(yè)網(wǎng)站建設(shè),石鼓品牌網(wǎng)站建設(shè),網(wǎng)站定制,石鼓網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,石鼓網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
以收集編譯產(chǎn)物并以cocopods方式集成
產(chǎn)物大概放入兩個(gè)pod庫(kù)
這個(gè)暫且叫pod1,pod1放flutter.framework,第三方plugin.a,自己寫(xiě)的基礎(chǔ)plugin,比如networking,hud等等(由于是混編,不可避免存在很多原生基礎(chǔ)組件,所以能公用的基礎(chǔ)組件都會(huì)弄一個(gè)flutter-plugin橋接)
第二個(gè)pod2放編譯之后的app.framwork,注冊(cè)文件GeneratedPluginRegistrant,以及各個(gè)業(yè)務(wù)模塊.a(有可能沒(méi)有)結(jié)構(gòu)大概如下面
podspec大概如下
主工程引入這兩個(gè)pod庫(kù)即可
接下來(lái)從零開(kāi)始搭建上文所說(shuō)的
先創(chuàng)建一個(gè)flutter module
這個(gè)是主flutter工程,用來(lái)集成businessModule以及生成app.framework
結(jié)構(gòu)如下圖
再生成一個(gè)業(yè)務(wù)工程
注意此時(shí)還需要進(jìn)入example生成ios和Android工程,不然無(wú)法單獨(dú)編譯運(yùn)行
這樣 這個(gè)單獨(dú)的業(yè)務(wù)模塊就可以單獨(dú)跑起來(lái)了
此時(shí)主flutter工程和業(yè)務(wù)工程均搭建完畢
在主工程pubspec.ymal文件講兩個(gè)工程關(guān)聯(lián)
好了 接下來(lái)就是編寫(xiě)腳本收集產(chǎn)物了
編譯完成之后會(huì)在flutter主工程product生成如下文件
將上面文件分類收集做成文章開(kāi)頭的pod1,pod2 ,在native工程引入即可
在集成flutter的過(guò)程中 踩不少坑 也閱讀很多前輩的文章,在此一并感謝
有兩種方法,一,自己找人才從零開(kāi)始研發(fā),當(dāng)然要耗費(fèi)對(duì)應(yīng)的時(shí)間和資金,并且需要多次調(diào)試,不能絕對(duì)保證能提供良好的體驗(yàn)感;二,直接接入第三方互聯(lián)網(wǎng)巨頭研發(fā)的視頻通話SDK,要想快速搭建的話,建議選擇后者,即構(gòu)科技的產(chǎn)品就不錯(cuò),可以提供90天的體驗(yàn)。
當(dāng)前教程只負(fù)責(zé)搭建Flutter模塊
一、需要搭建Sentry服務(wù) Sentry搭建教程
二、熟悉Flutter異步異常同步異常
一、main方法中將所有初始化操作都包含在runZoned中[1.17.0版本以上推薦使用runZonedGuarded]
二、區(qū)分異步異常與同步異常
三、教程中Map對(duì)象中有\(zhòng)n符號(hào),是為了在服務(wù)頁(yè)面(html頁(yè)面自動(dòng)解析\n符號(hào))顯示容易解讀
一、異常上報(bào)數(shù)據(jù)
1、錯(cuò)誤標(biāo)題
2、錯(cuò)誤詳細(xì)位置
3、設(shè)備信息
4、用戶信息
二、用到插件
1、sentry: "=3.0.0 4.0.0";以官網(wǎng)為準(zhǔn) Flutter官方推薦使用樣例
2、device_info;獲取設(shè)備信息,版本以插件庫(kù)為準(zhǔn)
三、異常分類處理
1、RangeError ;dart異常
2、FlutterErrorDetails;頁(yè)面渲染異常
3、MissingPluginException; 服務(wù)異常
4、DioError ;Dio請(qǐng)求異常
四、異常處理
1、Android信息處理
2、IOS設(shè)備信息獲取
3、獲取設(shè)備信息
Sentry上報(bào)
GITHUB地址:
我們依賴國(guó)際化的兩個(gè)package:
intl_translation 是用來(lái)生成arb的翻譯文件,所以添加的依賴只用在dev環(huán)境下
這里我們會(huì)創(chuàng)建一個(gè)代理文件
Provider使用起來(lái)學(xué)習(xí)成本更小而且管理容易
Provider
Provider學(xué)習(xí)文章
創(chuàng)建一個(gè)通知的基類
主題和語(yǔ)言改變發(fā)出通知
在main中注冊(cè)
主題相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,不需要依賴太多外部的框架
global設(shè)置
在上面寫(xiě)的函數(shù)中可以找到,添加了通知
shared_preferences
shared_preferences很多人都已經(jīng)用過(guò)了不做過(guò)多的介紹.主要說(shuō)明下,如何把原來(lái)異步的任務(wù)變成同步.
shared_preferences 異步有兩個(gè)地方,一個(gè)是初始一個(gè)是存儲(chǔ)
項(xiàng)目初始化的時(shí)候,可以將shared_preferences初始化然后存儲(chǔ)下來(lái),shared_preferences在get的時(shí)候是同步的,我們就不需要處理了,存儲(chǔ)的時(shí)候我們依舊是異步的,這樣能解決app啟動(dòng)是需要初始化的參數(shù)問(wèn)題
1.NavigationService 不需要context的push工具
2.ScreenService獲取屏幕寬高工具
3.EventBusService 通知工具
.....
Nginx 是一個(gè)高性能的 HTTP 和反向代理 web 服務(wù)器,我們可以把我們應(yīng)用發(fā)布到 Nginx上,提供IP地址給外部訪問(wèn)。
① 進(jìn)入容器:
② 切換到容器的配置文件目錄
③ 查看配置文件
或者安裝并通過(guò)vim打開(kāi)
在默認(rèn)配置下,網(wǎng)頁(yè)文件位于/usr/share/nginx/html 目錄下,我們只需將編譯后的flutter web文件放在該目錄下可以。
環(huán)境準(zhǔn)備階段:
android-studio 版本:android-studio-ide-191.5977832-windows.exe 3.5.2
flutter版本:stable 版本 (完成系統(tǒng)環(huán)境變量 path配置)
dart版本:2.12.0 (完成系統(tǒng)環(huán)境變量 path配置)
完成相關(guān)軟件安裝。
配置flutter相關(guān)SDK及andriod studio路徑:
flutter config --android-sdk="C:\Users\Administrator\AppData\Local\Android\Sdk"
flutter config --android-studio-dir="D:\Program Files\Android\Android Studio"
執(zhí)行flutter doctor運(yùn)行成功。
夜神模擬器地址:D:\Program Files\Nox\bin (完成系統(tǒng)環(huán)境變量 path配置)
andriod SDK tools:C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools (完成系統(tǒng)環(huán)境變量 path配置)
nox_adb.exe connect 127.0.0.1:62001
dart SDK:D:\software\dartsdk-windows-x64-release\dart-sdk\bin
將C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools 下面adb.exe 復(fù)制至D:\Program Files\Nox\bin覆蓋
adb.exe,此外重新復(fù)制adb.exe命名為nox_adb.exe,替換原有的nox_adb.exe。
cdm 輸入nox_adb version 及adb version發(fā)現(xiàn)版本一致。
啟動(dòng)野神模擬器,輸入adb devices發(fā)現(xiàn)虛擬設(shè)備,執(zhí)行flutter devices發(fā)現(xiàn) 127.0.0.1:62001 設(shè)備。
修改C:\learn_flutter\first_flutter\android\gradle\wrapper\gradle-wrapper.properties
distributionUrl=
修改C:\learn_flutter\first_flutter\android\build.gradle
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
// google()
// jcenter()
maven { url ' ' }
maven { url ' ' }
maven { url ' ' }
}
}
allprojects {
repositories {
// google()
// jcenter()
maven { url ' ' }
maven { url ' ' }
maven { url ' ' }
}
}
修改:C:\win-flutter\flutter\packages\flutter_tools\gradle\flutter.gradle
buildscript {
repositories {
// google()
// jcenter()
maven { url ' ' }
maven { url ' ' }
maven { url ' ' }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
}
}
//private static final String DEFAULT_MAVEN_HOST = " ";
private static final String DEFAULT_MAVEN_HOST = " ";
修改:C:\win-flutter\flutter\packages\flutter_tools\gradle\resolve_dependencies.gradle
repositories {
google()
jcenter()
maven {
//url "$storageUrl/download.flutter.io"
url " "
}
}
執(zhí)行 flutter run啟動(dòng)成功。
環(huán)境搭建坑點(diǎn)在于JDK兼容問(wèn)題以及網(wǎng)絡(luò)問(wèn)題。
本文題目:怎么搭建flutter,怎么搭建測(cè)試環(huán)境
URL分享:http://chinadenli.net/article14/dsecjge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站營(yíng)銷(xiāo)、商城網(wǎng)站、做網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)