如何检测用户是否打开页面

时间:2019-08-09 17:02:11

标签: flutter dart

我正在制作一个聊天应用程序,并想在其中添加“可见”选项,因此我想知道用户何时打开页面  我不知道这是我的路线

class Routes {
  final routes = <String, WidgetBuilder>{
  '/auth': (BuildContext context) => AuthScreen(),
  '/home': (BuildContext context) => HomeScreen(),
  '/profile/edit': (BuildContext context) => EditUserScreen(),
  '/': (BuildContext context) => SplashScreen(),
  '/phonelog': (BuildContext context) => MobileAuthScreen(),
  '/Chat': (BuildContext context) => Chat(),
}; 

2 个答案:

答案 0 :(得分:0)

这里是一个例子:

您可以在路线创建期间添加模型,或者如果您使用任何类型的服务定位器或继承的小部件,都可以提供模型。

不只是在模型中添加您已经看到路线的标记。

class Routes {
  final routes;
  final RouteModel routeModel;

  Routes()
      : routeModel = RouteModel(),
        routes = <String, WidgetBuilder>{
          '/auth': (BuildContext context) => AuthScreen(routeModel),
          '/home': (BuildContext context) => HomeScreen(routeModel),
          '/profile/edit': (BuildContext context) => EditUserScreen(routeModel),
          '/': (BuildContext context) => SplashScreen(routeModel),
          '/phonelog': (BuildContext context) => MobileAuthScreen(routeModel),
          '/Chat': (BuildContext context) => Chat(routeModel),
        };
}

class RouteModel {
  Map<String,bool> seen = {};
}

稍后在您的路线中,您想要以某种方式添加看到的标记,并基于该标记构建窗口小部件。

void aboutToNavigateOut(){
  routeModel.seen['/home'] = true;
}

Widget build(context){
  return Text(routeModel.seen['/home']?"Seen":"UnSeen");
}

答案 1 :(得分:0)

有多种修复方法。

  1. 使用onviewpage初始化钩子来了解用户已经访问了该应用程序。

  2. 如果您希望在屏幕或特定容器上单击一次后看到see = true,则可以使用主机侦听器来了解用户已访问