如何使我的Flutter应用程序使用户返回操作系统主屏幕?

时间:2019-01-15 07:37:23

标签: flutter

我正在使用一个具有锁定屏幕的应用程序,但是在使它正常运行方面存在一些问题。现在,当用户挂起/恢复应用程序时,我正在使用didChangeAppLifecycleState导航到锁定屏幕。我还使用WillPopScope拦截并拒绝后退按钮。这种方法的问题在于,按下“后退”按钮却什么也没发生就不会感觉很直观。理想情况下,我希望使用后退按钮将用户带出应用程序,并在他们处于锁定屏幕时返回其操作系统主屏幕。我还想以此方式维护用户的路线历史记录,以确保他们成功解锁该应用程序。

有什么方法可以完成我想做的事情,还是我应该接受后退按钮在锁定屏幕上什么都不会做的事情?

1 个答案:

答案 0 :(得分:1)

您可以在LockScreen状态下创建一个标识符,并在onWillPop中检查该标识符,如果用户正在从锁定屏幕上按“后退”按钮,则退出应用程序。

String identifier = "lockscreen";

bool onWillPop() {
  if (identifier == "lockscreen") {
    SystemNavigator.pop();
    SystemChannels.platform.invokeMethod('SystemNavigator.pop'); //preferred.*
    return true;
  }
}

SystemNavigator.pop():在iOS上,对此方法的调用将被忽略,因为Apple的人机界面指南指出应用程序不应自行退出。