Flutter?點擊兩次退出app的實現(xiàn)示例
在安卓手機上才會有物理返回鍵,而ios手機是沒有的,所以說這個是安卓手機獨有的功能。
使用場景:當(dāng)用戶在某一段時間內(nèi)連續(xù)點擊兩次返回鍵,才會被認(rèn)為是退出應(yīng)用。
在Flutter中想實現(xiàn)這個功能,首先我們先來認(rèn)識一個Flutter中的組件WillPopScope,在Flutter中我們是用這個組件來實現(xiàn)物理返回鍵攔截的,從而實現(xiàn)點擊兩返回鍵退出應(yīng)用。
onWillPop是他的一個回調(diào)函數(shù),當(dāng)用戶點擊返回按鈕時被調(diào)用(Android物理返回按鈕),該回調(diào)需要返回一個Future對象,如果返回的Future最終值為false時,則當(dāng)前路由不出棧(不會返回);最終值為true時,當(dāng)前路由出棧退出。我們需要提供這個回調(diào)來決定是否退出。
1.App組件
DateTime? lastPopTime;
onWillPop: () async {
if (lastPopTime == null ||
DateTime.now().difference(lastPopTime!) > Duration(seconds: 1)) {
lastPopTime = DateTime.now();
ToastUtils.showToast("再按一次退出");
return Future.value(false);
} else {
lastPopTime = DateTime.now();
// 退出app
return Future.value(true);
}
});2.InAppWebview組件
DateTime? lastPopTime;
onWillPop: () async {
// webViewController?.goBack();
// return Future.value(false);
if (lastPopTime == null ||
DateTime.now().difference(lastPopTime!) > Duration(seconds: 1)) {
lastPopTime = DateTime.now();
if (await webViewController?.canGoBack() == true) {
await webViewController?.goBack();
} else {
ToastUtils.showToast("再按一次退出");
}
return Future.value(false);
} else {
lastPopTime = DateTime.now();
// 退出app
return Future.value(true);
// await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
}
});到此這篇關(guān)于Flutter 點擊兩次退出app的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Flutter 點擊兩次退出app內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android App內(nèi)監(jiān)聽截圖加二維碼功能代碼
Android截屏功能是一個常用的功能,可以方便的用來分享或者發(fā)送給好友,本文介紹了如何實現(xiàn)app內(nèi)截屏監(jiān)控功能,需要的朋友可以參考下2017-08-08
跨平臺移動WEB應(yīng)用開發(fā)框架iMAG入門教程
這篇文章主要介紹了跨平臺移動WEB應(yīng)用開發(fā)框架iMAG入門教程,iMAG最大的特點是生成各移動平臺的原生代碼,需要的朋友可以參考下2014-07-07
Android完美實現(xiàn)平滑過渡的ViewPager廣告條
這篇文章主要為大家詳細(xì)介紹了Android完美實現(xiàn)平滑過渡的ViewPager廣告條,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
Android?Framework如何實現(xiàn)Binder
這篇文章主要介紹了Android?Framework如何實現(xiàn)Binder,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
解決android報錯:Intel HAXM is required to run this AVD
這篇文章主要介紹了解決android報錯:Intel HAXM is required to run this AVD,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Android彈出dialog后無法捕捉back鍵的解決方法
這篇文章主要為大家詳細(xì)介紹了Android彈出dialog后無法捕捉back鍵的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
Android 靜默方式實現(xiàn)批量安裝卸載應(yīng)用程序的深入分析
本篇文章是對Android 靜默方式實現(xiàn)批量安裝卸載應(yīng)用程序進行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

