欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

flutter退出程序,flutter卸載

Flutter開發(fā)之Android物理按鍵返回

在flutter開發(fā)過程中,發(fā)現(xiàn)Android手機(jī)在App首頁點(diǎn)擊物理返回按鈕時(shí),App會(huì)退出并且再次點(diǎn)開App時(shí)會(huì)重新啟動(dòng),這代表了上次的退出直接殺死了App,和我們平常的退到手機(jī)桌面不同,所以開發(fā)了一個(gè)單獨(dú)插件來處理這種情況。

西雙版納網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),西雙版納網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為西雙版納上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的西雙版納做網(wǎng)站的公司定做!

使用步驟如下:

1、pubspec.yaml文件中引入依賴

2、引用插件

3、使用插件來退出App到桌面,并且保持App后臺運(yùn)行

可根據(jù)實(shí)際情況在_onWillPop方法中處理相關(guān)邏輯,比如連續(xù)兩次點(diǎn)擊物理返回按鈕才退出到桌面等。

Flutter:退出應(yīng)用

-此退出方式適用于Flutter是作為Model方式,存在于原生(例如Android)項(xiàng)目里面,并且,當(dāng)退出時(shí),需要通知原生項(xiàng)目,原生有需要處理的業(yè)務(wù),由原生項(xiàng)目來處理結(jié)束整個(gè)應(yīng)用(例如Android的:System.exit(0);)

此退出方式就適合原生項(xiàng)目退出時(shí)沒有需要處理的業(yè)務(wù)邏輯,直接就結(jié)束應(yīng)用

Flutter documentation 上關(guān)乎 exit() 是這么說的:

Flutter Dio源碼分析(四)--封裝

Flutter Dio源碼分析(一)--Dio介紹

Flutter Dio源碼分析(二)--HttpClient、Http、Dio對比

Flutter Dio源碼分析(三)--深度剖析

Flutter Dio源碼分析(四)--封裝

Flutter Dio源碼分析(一)--Dio介紹視頻教程

Flutter Dio源碼分析(二)--HttpClient、Http、Dio對比視頻教程

Flutter Dio源碼分析(三)--深度剖析視頻教程

Flutter Dio源碼分析(四)--封裝視頻教程

github倉庫地址

本文會(huì)手把手教你該怎么去封裝一個(gè)類庫,平時(shí)在我們的工作中都是拿著別人的造好的輪子在使用,這篇文章將帶你怎么去自己造輪子,以后再碰到別的類庫需要對其進(jìn)行封裝的時(shí)候提供一個(gè)的思路和方法。

在前面的文章中,我們對 Dio 的基本使用、請求庫對比、源碼分析,我們知道 Dio 的使用非常的簡單,那為什么還需要進(jìn)行封裝呢?有兩點(diǎn)如下:

當(dāng)組件庫方法發(fā)生重要改變需要遷移的時(shí)候如果有多處地方用到,那么需要對使用到的每個(gè)文件都進(jìn)行修改,非常的繁瑣而且很容易出問題。

當(dāng)不需要 Dio 庫的時(shí)候,我們可以隨時(shí)方便切換到別的網(wǎng)絡(luò)請求庫,當(dāng)然 Dio 目前內(nèi)置支持使用第三方庫的適配器。

因?yàn)橐粋€(gè)應(yīng)用程序基本都是統(tǒng)一的配置方式,所以我們可以針對 攔截器 、 轉(zhuǎn)換器 、 緩存 、 統(tǒng)一處理錯(cuò)誤 、 代理配置 、 證書校驗(yàn) 等多個(gè)配置進(jìn)行統(tǒng)一管理。

因?yàn)槲覀兊膽?yīng)用程序在每個(gè)頁面中都會(huì)用到網(wǎng)絡(luò)請求,那么如果我們每次請求的時(shí)候都去實(shí)例化一個(gè) Dio ,無非是增加了系統(tǒng)不必要的開銷,而使用單例模式對象一旦創(chuàng)建每次訪問都是同一個(gè)對象,不需要再次實(shí)例化該類的對象。

這是通過靜態(tài)變量的私有構(gòu)造器來創(chuàng)建的單例模式

我們對 超時(shí)時(shí)間 、 響應(yīng)時(shí)間 、 BaseUrl 進(jìn)行統(tǒng)一設(shè)置

因?yàn)椴还苁?get() 還是 post() 請求, Dio 內(nèi)部最終都會(huì)調(diào)用 request 方法,只是傳入的 method 不一樣,所以我們這里定義一個(gè)枚舉類型在一個(gè)方法中進(jìn)行處理

我們已經(jīng)把 Restful API 風(fēng)格簡化成了一個(gè)方法,通過 DioMethod 來標(biāo)明不同的請求方式。在我們平時(shí)開發(fā)的過程中,需要在請求前、響應(yīng)前、錯(cuò)誤時(shí)對某一些接口做特殊的處理,那我們就需要用到攔截器。 Dio 為我們提供了自定義攔截器功能,很容易輕松的實(shí)現(xiàn)對請求、響應(yīng)、錯(cuò)誤時(shí)進(jìn)行攔截

我們發(fā)現(xiàn)雖然 Dio 框架已經(jīng)封裝了一個(gè) DioError 類庫,但如果需要對返回的錯(cuò)誤進(jìn)行統(tǒng)一彈窗處理或者路由跳轉(zhuǎn)等就只能自定義了

在我們發(fā)送請求的時(shí)候會(huì)碰到幾種情況,比如需要對非open開頭的接口自動(dòng)加上一些特定的參數(shù),獲取需要在請求頭增加統(tǒng)一的 token

在我們請求接口前可以對響應(yīng)數(shù)據(jù)進(jìn)行一些基礎(chǔ)的處理,比如對響應(yīng)的結(jié)果進(jìn)行自定義封裝,還可以針對單獨(dú)的 url 做特殊處理等。

我們看了轉(zhuǎn)換器的介紹,發(fā)現(xiàn)和攔截器的功能差不多,那為什么還要存在轉(zhuǎn)換器,有兩點(diǎn):

執(zhí)行流程: 請求攔截器 請求轉(zhuǎn)換器 發(fā)起請求 響應(yīng)轉(zhuǎn)換器 響應(yīng)攔截器 最終結(jié)果 。

只會(huì)被用于 'PUT'、 'POST'、 'PATCH'方法,因?yàn)橹挥羞@些方法才可以攜帶請求體(request body)

會(huì)被用于所有請求方法的返回?cái)?shù)據(jù)。

在開發(fā)過程中,客戶端和服務(wù)器打交道的時(shí)候,往往會(huì)用一個(gè) token 來做校驗(yàn),因?yàn)槊總€(gè)公司處理刷新token的邏輯都不一樣,我這里舉一個(gè)簡單的例子

為什么我們需要有取消請求的功能,如果當(dāng)我們的頁面在發(fā)送請求時(shí),用戶主動(dòng)退出當(dāng)前界面或者app應(yīng)用程序退出的時(shí)候數(shù)據(jù)還沒有響應(yīng),那我們就需要取消該網(wǎng)絡(luò)請求,防止不必要的錯(cuò)誤。

由 服務(wù)器生成 的 一小段文本信息 ,發(fā)送給瀏覽器,瀏覽器把 cookie 以kv形式保存到本地 某個(gè)目錄下的文本文件內(nèi),下一次請求同一網(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ò)請求時(shí),我們希望能正常訪問到上次的數(shù)據(jù),對于用戶的體驗(yàn)比較好,而不是展示一個(gè)空白的頁面,該緩存主要是 《Flutter實(shí)戰(zhàn)》網(wǎng)絡(luò)接口緩存 提供參考。

我們在程序退出后內(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ò)

flutter中如何實(shí)現(xiàn)當(dāng)退出app后再進(jìn)入app仍然保持登入狀態(tài)?

我覺得如果想要實(shí)現(xiàn)退出app之后再進(jìn)入app中來保持登錄的狀態(tài)的話,就必須要不斷地保持自己的聯(lián)網(wǎng)。

Flutter點(diǎn)擊返回鍵,回到桌面,但不退出APP的實(shí)現(xiàn)

只有Android手機(jī)上才會(huì)有返回APP的操作,所以以下所說的是針對Flutter的Android平臺上開發(fā),現(xiàn)在flutter的版本已經(jīng)升級到1.22.0以上了,很多舊方法都不能用了,網(wǎng)絡(luò)上有很多案例都是針對舊的flutter版本,所以我這邊就做過新版本的該功能,方便大家參考一下

這是新舊flutter編寫返回到桌面的最大區(qū)別,以前可以在MainActivity直接編寫能用的插件,但是現(xiàn)在不行了,很多方法都沒有了,因此,我們需要新啟一個(gè)插件 app_util_plugin,編寫網(wǎng)上有很多教程,這里就不在贅述了

插件模塊

編寫插件調(diào)用方法

在main.dart監(jiān)聽系統(tǒng)返回鍵,當(dāng)時(shí)調(diào)用系統(tǒng)返回鍵時(shí),將它攔截下來,再調(diào)用插件中的返回桌面的方法,這樣就可以不用退出APP,就可以回到桌面了

整個(gè)過程很簡單,希望可以幫到flutter 的初學(xué)者們

當(dāng)前題目:flutter退出程序,flutter卸載
標(biāo)題URL:http://chinadenli.net/article13/dsgoods.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)微信公眾號響應(yīng)式網(wǎng)站App設(shè)計(jì)建站公司品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)