뒤로가기 버튼을 클릭했을 때 "종료하시겠습니까?"와 관련된 기능을 추가하려면
WillPopScope 위젯을 사용하여 백 버튼 이벤트를 처리할 수 있습니다.
아래와 같이 코드를 수정하여 "뒤로가기" 버튼 클릭 시 종료 여부를 묻는 다이얼로그를 표시할 수 있습니다.
기존코드
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Flutter WebView 11'),
),
body: WebViewWidget(
controller: controller,
),
);
수정코드
Future<bool> _onWillPop() async {
return await showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text('종료하시겠습니까?'),
actions: <Widget>[
TextButton(
onPressed: () => Navigator.of(context).pop(false),
child: Text('아니오'),
),
TextButton(
onPressed: () => Navigator.of(context).pop(true),
child: Text('예'),
),
],
),
) ?? false;
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: _onWillPop,
child: Scaffold(
body: WebViewWidget(
controller: controller,
),
),
);
}
위 코드에서 WillPopScope 위젯은 뒤로가기 이벤트를 감지하고 _onWillPop 함수를 호출합니다.
_onWillPop 함수에서는 다이얼로그를 표시하고 "예" 버튼을 클릭하면 true를 반환하여 앱을 종료하고
"아니오" 버튼을 클릭하면 false를 반환하여 종료하지 않도록 처리합니다.
'프로그래밍 > flutter' 카테고리의 다른 글
[flutter] 앱 아이콘 변경 (0) | 2023.08.16 |
---|---|
[flutter] 스플래쉬(splash) 화면 추가 (0) | 2023.08.16 |
[flutter] native(앱) 의 웹뷰(vue3) 양방향 통신 방법 InAppWebView 사용 (0) | 2023.08.11 |
소켓통신 첫 4byte 길이 구하기 (비트연산) (0) | 2023.08.10 |
[flutter] 소켓 통신 응답받을때 데이터 짤리는 문제 (0) | 2023.08.08 |