最近在集成flutter進項目
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),石鼓企業(yè)網(wǎng)站建設(shè),石鼓品牌網(wǎng)站建設(shè),網(wǎng)站定制,石鼓網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,石鼓網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
以收集編譯產(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的過程中 踩不少坑 也閱讀很多前輩的文章,在此一并感謝
有兩種方法,一,自己找人才從零開始研發(fā),當然要耗費對應(yīng)的時間和資金,并且需要多次調(diào)試,不能絕對保證能提供良好的體驗感;二,直接接入第三方互聯(lián)網(wǎng)巨頭研發(fā)的視頻通話SDK,要想快速搭建的話,建議選擇后者,即構(gòu)科技的產(chǎn)品就不錯,可以提供90天的體驗。
當前教程只負責搭建Flutter模塊
一、需要搭建Sentry服務(wù) Sentry搭建教程
二、熟悉Flutter異步異常同步異常
一、main方法中將所有初始化操作都包含在runZoned中[1.17.0版本以上推薦使用runZonedGuarded]
二、區(qū)分異步異常與同步異常
三、教程中Map對象中有\(zhòng)n符號,是為了在服務(wù)頁面(html頁面自動解析\n符號)顯示容易解讀
一、異常上報數(shù)據(jù)
1、錯誤標題
2、錯誤詳細位置
3、設(shè)備信息
4、用戶信息
二、用到插件
1、sentry: "=3.0.0 4.0.0";以官網(wǎng)為準 Flutter官方推薦使用樣例
2、device_info;獲取設(shè)備信息,版本以插件庫為準
三、異常分類處理
1、RangeError ;dart異常
2、FlutterErrorDetails;頁面渲染異常
3、MissingPluginException; 服務(wù)異常
4、DioError ;Dio請求異常
四、異常處理
1、Android信息處理
2、IOS設(shè)備信息獲取
3、獲取設(shè)備信息
Sentry上報
GITHUB地址:
我們依賴國際化的兩個package:
intl_translation 是用來生成arb的翻譯文件,所以添加的依賴只用在dev環(huán)境下
這里我們會創(chuàng)建一個代理文件
Provider使用起來學習成本更小而且管理容易
Provider
Provider學習文章
創(chuàng)建一個通知的基類
主題和語言改變發(fā)出通知
在main中注冊
主題相對來說比較簡單,不需要依賴太多外部的框架
global設(shè)置
在上面寫的函數(shù)中可以找到,添加了通知
shared_preferences
shared_preferences很多人都已經(jīng)用過了不做過多的介紹.主要說明下,如何把原來異步的任務(wù)變成同步.
shared_preferences 異步有兩個地方,一個是初始一個是存儲
項目初始化的時候,可以將shared_preferences初始化然后存儲下來,shared_preferences在get的時候是同步的,我們就不需要處理了,存儲的時候我們依舊是異步的,這樣能解決app啟動是需要初始化的參數(shù)問題
1.NavigationService 不需要context的push工具
2.ScreenService獲取屏幕寬高工具
3.EventBusService 通知工具
.....
Nginx 是一個高性能的 HTTP 和反向代理 web 服務(wù)器,我們可以把我們應(yīng)用發(fā)布到 Nginx上,提供IP地址給外部訪問。
① 進入容器:
② 切換到容器的配置文件目錄
③ 查看配置文件
或者安裝并通過vim打開
在默認配置下,網(wǎng)頁文件位于/usr/share/nginx/html 目錄下,我們只需將編譯后的flutter web文件放在該目錄下可以。
環(huá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運行成功。
夜神模擬器地址: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 復制至D:\Program Files\Nox\bin覆蓋
adb.exe,此外重新復制adb.exe命名為nox_adb.exe,替換原有的nox_adb.exe。
cdm 輸入nox_adb version 及adb version發(fā)現(xiàn)版本一致。
啟動野神模擬器,輸入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啟動成功。
環(huán)境搭建坑點在于JDK兼容問題以及網(wǎng)絡(luò)問題。
本文題目:怎么搭建flutter,怎么搭建測試環(huán)境
URL分享:http://jinyejixie.com/article14/dsecjge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、網(wǎng)站營銷、商城網(wǎng)站、做網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)