なにこれ
- 戻るボタンを無効化したけど、戻るボタンで色々処理をさせたい時があった
- その時、前画面に戻るだけでなく、最上位の画面なら pop せずにアプリをバックグラウンドに行かせて、ホーム画面に行く処理を実装したいと思った
- 以前書いた戻るボタン無効化の記事は以下
解決方法
move_to_background
パッケージをインストールする
パッケージ公式ガイドはこちら
インストールコマンドはこちら
flutter pub add move_to_background
yaml に直接書く場合はこちら(バージョンは後述の公式ページにあるバージョンを参照してください)
pubspec.yaml
dependencies:
move_to_background: ^1.0.2
onPopInvoked を実装
戻るボタンがタップされた時に onPopInvoked で判定して、MoveToBackground.moveTaskToBack()
を実行させるとアプリをバックグラウンドに移動させてデバイスのホーム画面に戻ることができます。
import 'package:move_to_background/move_to_background.dart';
...
PopScope(
canPop: false,
onPopInvoked: (bool didPop) async {
if (!didPop) {
MoveToBackground.moveTaskToBack();
}
},
パッケージのリポジトリ
おわりに
2024年8月にこの記事書いているのですが、公式ページ見ると3年以上メンテナンスされていない様子…
いつか自作するしかないのかしら。