只有Android手機(jī)上才會(huì)有返回APP的操作,所以以下所說(shuō)的是針對(duì)Flutter的Android平臺(tái)上開(kāi)發(fā),現(xiàn)在flutter的版本已經(jīng)升級(jí)到1.22.0以上了,很多舊方法都不能用了,網(wǎng)絡(luò)上有很多案例都是針對(duì)舊的flutter版本,所以我這邊就做過(guò)新版本的該功能,方便大家參考一下
術(shù)業(yè)有專攻,您咨詢的再多,也不如我了解的一半多;有責(zé)任心的專業(yè)網(wǎng)站建設(shè)公司會(huì)做到“客戶想到的我們要做到,客戶沒(méi)有想到的我們也要幫客戶做到“。我們的設(shè)計(jì)師是5年以上的設(shè)計(jì)師,我們不僅僅會(huì)設(shè)計(jì)網(wǎng)站,更會(huì)策劃網(wǎng)站。
這是新舊flutter編寫(xiě)返回到桌面的最大區(qū)別,以前可以在MainActivity直接編寫(xiě)能用的插件,但是現(xiàn)在不行了,很多方法都沒(méi)有了,因此,我們需要新啟一個(gè)插件 app_util_plugin,編寫(xiě)網(wǎng)上有很多教程,這里就不在贅述了
插件模塊
編寫(xiě)插件調(diào)用方法
在main.dart監(jiān)聽(tīng)系統(tǒng)返回鍵,當(dāng)時(shí)調(diào)用系統(tǒng)返回鍵時(shí),將它攔截下來(lái),再調(diào)用插件中的返回桌面的方法,這樣就可以不用退出APP,就可以回到桌面了
整個(gè)過(guò)程很簡(jiǎn)單,希望可以幫到flutter 的初學(xué)者們
-此退出方式適用于Flutter是作為Model方式,存在于原生(例如Android)項(xiàng)目里面,并且,當(dāng)退出時(shí),需要通知原生項(xiàng)目,原生有需要處理的業(yè)務(wù),由原生項(xiàng)目來(lái)處理結(jié)束整個(gè)應(yīng)用(例如Android的:System.exit(0);)
此退出方式就適合原生項(xiàng)目退出時(shí)沒(méi)有需要處理的業(yè)務(wù)邏輯,直接就結(jié)束應(yīng)用
Flutter documentation 上關(guān)乎 exit() 是這么說(shuō)的:
在flutter開(kāi)發(fā)過(guò)程中,發(fā)現(xiàn)Android手機(jī)在App首頁(yè)點(diǎn)擊物理返回按鈕時(shí),App會(huì)退出并且再次點(diǎn)開(kāi)App時(shí)會(huì)重新啟動(dòng),這代表了上次的退出直接殺死了App,和我們平常的退到手機(jī)桌面不同,所以開(kāi)發(fā)了一個(gè)單獨(dú)插件來(lái)處理這種情況。
使用步驟如下:
1、pubspec.yaml文件中引入依賴
2、引用插件
3、使用插件來(lái)退出App到桌面,并且保持App后臺(tái)運(yùn)行
可根據(jù)實(shí)際情況在_onWillPop方法中處理相關(guān)邏輯,比如連續(xù)兩次點(diǎn)擊物理返回按鈕才退出到桌面等。