使用Firebase Analytics跟踪Flutter中的屏幕视图

时间:2019-04-08 11:59:11

标签: flutter firebase-analytics

在Flutter中使用分析程序包手动记录屏幕视图的最佳位置是什么(在我的情况下,我正在使用Firebase Analytics,例如track screens)?

看看Flutter的生命周期,尚不清楚在何处跟踪屏幕视图。

对于search.php,我认为StatelessWidget可能是有道理的,因为我猜每个屏幕视图只能调用一次。

build()呢?在这种情况下,StatefulWidget不会有用,因为它可以被多次调用。其他候选者是build()initState()或构造函数,它们似乎都只被调用一次,尽管我猜测随着重新构建层次结构中的小部件,每个屏幕视图它们都可能被调用一次以上。

1 个答案:

答案 0 :(得分:1)

答案是:这取决于。对于StatelessWidget,在build()中有一个Analytics事件可能是合适的,但前提是父窗口小部件不经常重建。对于StatefulWidget,这同样适用,但是由于状态变化(这种情况发生的可能性更大),您还必须考虑进行重建。

实际上,最安全的方法不是在小部件生命周期的任何部分中调用Analytics事件,而是在可能触发屏幕的UI事件上调用,例如,打开编辑屏幕的编辑按钮。但是,这种方法的问题在于,屏幕可能会从应用程序中的多个位置打开(这意味着您必须在所有这些位置重复进行Google Analytics(分析)调用)。

这意味着最好的选择可能是将Analytics(分析)与PageRoute转换相关联,以便在执行页面路由时始终调用该转换。 docs中对此进行了演示。这会错过选项卡栏和其他类型的UI导航中的跟踪屏幕,但是正如文档所说,处理此问题的一种方法是实现RouteAware并将其订阅到FirebaseAnalyticsObserverexample tabs implementation )。