我有一个基于导航的应用程序。我看到的所有 Google Analytics 示例都在 viewDidLoad 中进行了页面查看跟踪。
我想知道这是否最有意义。如果我想了解用户的真实行为,不应该在 viewWillAppear 中吗?将其放入 viewDidLoad 的理由是什么?是否对跟踪浏览量的正确方法达成共识?
谢谢
我有一个基于导航的应用程序。我看到的所有 Google Analytics 示例都在 viewDidLoad 中进行了页面查看跟踪。
我想知道这是否最有意义。如果我想了解用户的真实行为,不应该在 viewWillAppear 中吗?将其放入 viewDidLoad 的理由是什么?是否对跟踪浏览量的正确方法达成共识?
谢谢
两者都不。 UINavigationController
可以发送一个委托消息来通知它在层次结构中的导航。查看协议以UINavigationControllerDelegate
获取更多信息。您可以从一个委托处理所有事情,而不是修改所有视图控制器。
话虽如此,如果您出于某种原因确实需要从各个视图控制器执行此操作,则需要使用 *Appear
方法。使用 *Load
方法显然是错误的——那是为了加载,而不是为了显示,因此得名。
作为另一个参考点,Flurry Analytics 使用该UINavigationControllerDelegate
协议。
如果您的目标是在每次浏览层次结构并返回时获取 GA 注册的屏幕,即在基于导航的应用程序中,请执行以下操作:
对于自动屏幕测量,将页面查看跟踪放在 viewDidLoad 中就足够了。如果需要使用手动屏幕测量方法,则需要将其放在 viewWillAppear 中。请参阅https://developers.google.com/analytics/devguides/collection/ios/v2/screens