导航在 flutter 中计数

Navigations count in flutter

我需要在用户在应用中更改第 3 个页面后显示弹出窗口。

如何计算 flutter 中的导航次数?

我使用 getx 来更改应用程序中的页面,并且对 firebase 进行了观察者分析。

您可以使用变量跟踪更改的页面。 dart编程语言中没有global variable这样的东西。所以这是在 dart 中实现全局变量的一种方法。

步骤: 创建一个名为 global.dart 的文件并声明一个变量

例如:int pageCount = 0;

现在将此文件导入为 import 'package:..../global.dart';

并在 Navogator.push 或触发页面更改的任何地方递增 pageCount 变量。

Imp 注意:如果您使用这种方式,那么在每次应用程序重新启动时,pageCount 变量将重置(初始化)为 0,并且弹出窗口将在 [=17 后再次显示给用户=]


现在,如果您使用 sharedPreferences 插件可以避免这种情况。将 pageCount 存储为共享首选项。变量的更新应该按照上面解释的相同方式完成。

然后在每个应用程序启动时读取此变量,如果变量 == 3 则您可以跳过弹出窗口的显示。

插件link:https://pub.dev/packages/shared_preferences

这个 post 很好地解释了如何在你的 flutter 应用程序中实现共享首选项:https://medium.com/flutterdevs/using-sharedpreferences-in-flutter-251755f07127


这是最繁琐的方式:

现在,如果您不习惯使用共享首选项,则可以使用 path_provider 插件和 dart:io 库将变量存储在文本文件或 JSON 文件中。

这里解释了所有关于读取和写入文件的内容:https://flutter.dev/docs/cookbook/persistence/reading-writing-files

如果您选择使用JSON文件来保存变量,那么您可以进行如下操作:

  • 打开名为 config.jsonany_name.json
  • 的文件
  • 使用 file.writeAsStringSync('{"pageCount":3}'),无论该实例的页面更改计数是多少。
  • 在每次应用启动时读取此文件,检查页面计数是否为 3,然后实现您的逻辑等等。