1.在項(xiàng)目目錄執(zhí)行 flutter create -t module XXX(flutter模塊名) ;
創(chuàng)新互聯(lián)一直通過網(wǎng)站建設(shè)和網(wǎng)站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、營銷型網(wǎng)站服務(wù)為核心業(yè)務(wù)。十載網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
2.修改Podfile,設(shè)置path,關(guān)聯(lián)podhelper.rb,注意采用 load File.join() ,不采用之前的eval語句,在target do下install;
3.執(zhí)行pod install;
4.修改AppDelegate為FlutterAppDelegate;
5.初始化并注冊(cè)FlutterEngine;
6.vscode里flutter attach實(shí)時(shí)調(diào)試;
做完這些正常開發(fā)是可以了,至于打包需要更改什么再續(xù)。
Flutter Dio源碼分析(一)--Dio介紹
Flutter Dio源碼分析(二)--HttpClient、Http、Dio對(duì)比
Flutter Dio源碼分析(三)--深度剖析
Flutter Dio源碼分析(四)--封裝
Flutter Dio源碼分析(一)--Dio介紹視頻教程
Flutter Dio源碼分析(二)--HttpClient、Http、Dio對(duì)比視頻教程
Flutter Dio源碼分析(三)--深度剖析視頻教程
Flutter Dio源碼分析(四)--封裝視頻教程
github倉庫地址
本文會(huì)手把手教你該怎么去封裝一個(gè)類庫,平時(shí)在我們的工作中都是拿著別人的造好的輪子在使用,這篇文章將帶你怎么去自己造輪子,以后再碰到別的類庫需要對(duì)其進(jìn)行封裝的時(shí)候提供一個(gè)的思路和方法。
在前面的文章中,我們對(duì) Dio 的基本使用、請(qǐng)求庫對(duì)比、源碼分析,我們知道 Dio 的使用非常的簡單,那為什么還需要進(jìn)行封裝呢?有兩點(diǎn)如下:
當(dāng)組件庫方法發(fā)生重要改變需要遷移的時(shí)候如果有多處地方用到,那么需要對(duì)使用到的每個(gè)文件都進(jìn)行修改,非常的繁瑣而且很容易出問題。
當(dāng)不需要 Dio 庫的時(shí)候,我們可以隨時(shí)方便切換到別的網(wǎng)絡(luò)請(qǐng)求庫,當(dāng)然 Dio 目前內(nèi)置支持使用第三方庫的適配器。
因?yàn)橐粋€(gè)應(yīng)用程序基本都是統(tǒng)一的配置方式,所以我們可以針對(duì) 攔截器 、 轉(zhuǎn)換器 、 緩存 、 統(tǒng)一處理錯(cuò)誤 、 代理配置 、 證書校驗(yàn) 等多個(gè)配置進(jìn)行統(tǒng)一管理。
因?yàn)槲覀兊膽?yīng)用程序在每個(gè)頁面中都會(huì)用到網(wǎng)絡(luò)請(qǐng)求,那么如果我們每次請(qǐng)求的時(shí)候都去實(shí)例化一個(gè) Dio ,無非是增加了系統(tǒng)不必要的開銷,而使用單例模式對(duì)象一旦創(chuàng)建每次訪問都是同一個(gè)對(duì)象,不需要再次實(shí)例化該類的對(duì)象。
這是通過靜態(tài)變量的私有構(gòu)造器來創(chuàng)建的單例模式
我們對(duì) 超時(shí)時(shí)間 、 響應(yīng)時(shí)間 、 BaseUrl 進(jìn)行統(tǒng)一設(shè)置
因?yàn)椴还苁?get() 還是 post() 請(qǐng)求, Dio 內(nèi)部最終都會(huì)調(diào)用 request 方法,只是傳入的 method 不一樣,所以我們這里定義一個(gè)枚舉類型在一個(gè)方法中進(jìn)行處理
我們已經(jīng)把 Restful API 風(fēng)格簡化成了一個(gè)方法,通過 DioMethod 來標(biāo)明不同的請(qǐng)求方式。在我們平時(shí)開發(fā)的過程中,需要在請(qǐng)求前、響應(yīng)前、錯(cuò)誤時(shí)對(duì)某一些接口做特殊的處理,那我們就需要用到攔截器。 Dio 為我們提供了自定義攔截器功能,很容易輕松的實(shí)現(xiàn)對(duì)請(qǐng)求、響應(yīng)、錯(cuò)誤時(shí)進(jìn)行攔截
我們發(fā)現(xiàn)雖然 Dio 框架已經(jīng)封裝了一個(gè) DioError 類庫,但如果需要對(duì)返回的錯(cuò)誤進(jìn)行統(tǒng)一彈窗處理或者路由跳轉(zhuǎn)等就只能自定義了
在我們發(fā)送請(qǐng)求的時(shí)候會(huì)碰到幾種情況,比如需要對(duì)非open開頭的接口自動(dòng)加上一些特定的參數(shù),獲取需要在請(qǐng)求頭增加統(tǒng)一的 token
在我們請(qǐng)求接口前可以對(duì)響應(yīng)數(shù)據(jù)進(jìn)行一些基礎(chǔ)的處理,比如對(duì)響應(yīng)的結(jié)果進(jìn)行自定義封裝,還可以針對(duì)單獨(dú)的 url 做特殊處理等。
我們看了轉(zhuǎn)換器的介紹,發(fā)現(xiàn)和攔截器的功能差不多,那為什么還要存在轉(zhuǎn)換器,有兩點(diǎn):
執(zhí)行流程: 請(qǐng)求攔截器 請(qǐng)求轉(zhuǎn)換器 發(fā)起請(qǐng)求 響應(yīng)轉(zhuǎn)換器 響應(yīng)攔截器 最終結(jié)果 。
只會(huì)被用于 'PUT'、 'POST'、 'PATCH'方法,因?yàn)橹挥羞@些方法才可以攜帶請(qǐng)求體(request body)
會(huì)被用于所有請(qǐng)求方法的返回?cái)?shù)據(jù)。
在開發(fā)過程中,客戶端和服務(wù)器打交道的時(shí)候,往往會(huì)用一個(gè) token 來做校驗(yàn),因?yàn)槊總€(gè)公司處理刷新token的邏輯都不一樣,我這里舉一個(gè)簡單的例子
為什么我們需要有取消請(qǐng)求的功能,如果當(dāng)我們的頁面在發(fā)送請(qǐng)求時(shí),用戶主動(dòng)退出當(dāng)前界面或者app應(yīng)用程序退出的時(shí)候數(shù)據(jù)還沒有響應(yīng),那我們就需要取消該網(wǎng)絡(luò)請(qǐng)求,防止不必要的錯(cuò)誤。
由 服務(wù)器生成 的 一小段文本信息 ,發(fā)送給瀏覽器,瀏覽器把 cookie 以kv形式保存到本地 某個(gè)目錄下的文本文件內(nèi),下一次請(qǐng)求同一網(wǎng)站時(shí)會(huì)把該 cookie 發(fā)送給服務(wù)器。
cookie 的使用需要用到兩個(gè)第三方組件 dio_cookie_manager 和 cookie_jar
因?yàn)樵谖覀兤綍r(shí)的開發(fā)過程中,會(huì)碰到一種情況,在進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí),我們希望能正常訪問到上次的數(shù)據(jù),對(duì)于用戶的體驗(yàn)比較好,而不是展示一個(gè)空白的頁面,該緩存主要是 《Flutter實(shí)戰(zhàn)》網(wǎng)絡(luò)接口緩存 提供參考。
我們?cè)诔绦蛲顺龊髢?nèi)存緩存將會(huì)消失,所以我們用 shared_preferences 進(jìn)行磁盤緩存數(shù)據(jù)。
在我們用flutter進(jìn)行抓包的時(shí)候需要配置 Dio 代理。由 DefaultHttpClientAdapter 提供了一個(gè) onHttpClientCreate 回調(diào)來設(shè)置底層 HttpClient 的代理。
用于驗(yàn)證正在訪問的網(wǎng)站是否真實(shí)。提供安全性,因?yàn)樽C書和域名綁定,并且由根證書機(jī)構(gòu)簽名確認(rèn)。
日志打印主要是幫助我們開發(fā)時(shí)進(jìn)行輔助排錯(cuò)
重新打開即可。
因?yàn)檐浖诤笈_(tái)時(shí)間過長,軟件會(huì)出現(xiàn)一個(gè)黑屏動(dòng)畫,就需要重啟軟件即可恢復(fù)。
一年半前玩過flutter,忘光光...現(xiàn)在是時(shí)候重新拾取了。~
啟動(dòng)頁一般只放圖片或者加幾行文字。
1、創(chuàng)建好flutter項(xiàng)目之后,在lib文件下面新建launch.dart或xx.dart.
2、在根目錄下新建images文件夾,如已有直接放入圖片
3、flutter_yijiake.iml中加入注入該圖片,并注意空格
4、在根目錄下的test/widget_test.dart中更改默認(rèn)的啟動(dòng)頁為當(dāng)前的啟動(dòng)頁路徑
5、最后重新設(shè)置啟動(dòng)時(shí)的頁面
6、非常簡單的啟動(dòng)頁面放logo圖片
值得一說的是,flutter框架的UI組件需要已new 組件的形式展開。
gRPC是谷歌開發(fā)的一款遠(yuǎn)程過程調(diào)用系統(tǒng),可以讓客戶端像調(diào)用本地對(duì)象一樣使用服務(wù)端應(yīng)用的方法,使用protocol buffers接口定義語言來定義服務(wù)方法,protocol buffer定義參數(shù)和返回類型。
protobuf類似json,是一種數(shù)據(jù)結(jié)構(gòu)協(xié)議,在android studio中安裝Protobuf Support,方便查看編寫的proto文件
dart使用proto插件將proto文件生成對(duì)應(yīng)的dart文件,使用如下步驟
1、安裝flutter之后,再flutter的下面路徑中有pub命令,需要將命令加入到path中。
可以vi ~/.zshrc,在文件中加入source ~/.bash_profile,然后在vi ~/.bash_profile文件中加入下面路徑(:分割不同的路徑)
export PATH=/Users/webull/app/flutter/bin:/Users/webull/app/flutter/bin/cache/dart-sdk/bin:/Users/webull/.pub-cache/bin:$PATH
其中fluter/bin是flutter的命令路徑,dart-sdk/bin中包含了pub和其他dart命令,.pub-cache/bin是之后運(yùn)行pub之后建立的路徑,里面包含了proto-gen-dart命令,用來將proto文件轉(zhuǎn)換為dart的命令
2、使用下面的命令安裝proto插件
$ pub global activate protoc_plugin
安裝完成后,上面的用戶目錄中的.pub-cache目錄才會(huì)有proto-gen-dart文件。
1、其中/Users/webull是我的用戶目錄 app/flutter是flutter的安裝目錄
參考:
1、gRPC介紹
2、gRPC配置
網(wǎng)站標(biāo)題:flutter后臺(tái)錄屏,flutter帶殼錄屏
本文網(wǎng)址:http://www.rwnh.cn/article30/dssdcpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、自適應(yīng)網(wǎng)站、營銷型網(wǎng)站建設(shè)、商城網(wǎng)站、企業(yè)建站、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)