【问题标题】:Flurry: how to call -logEvent:withParameters:timed: when session ends?Flurry:如何调用-logEvent:withParameters:timed:会话何时结束?
【发布时间】:2016-07-28 07:09:14
【问题描述】:

我正在使用适用于 iOS 的 Flurry API,但遇到了一个似乎不受支持的用例:

我正在使用-logEvent:timed: 开始一个定时事件,以跟踪用户在视图上花费的时间。当用户在该视图上时,正在跟踪一些参数,我计划在用户离开视图时将这些参数传递给-endTimedEvent:withParameters:

这里是棘手的部分,如果用户在视图中将应用程序背景化,Flurry 将在 10 秒后自动结束定时事件,而无需设置任何参数。一种解决方案当然是观察UIApplicationWillResignActiveNotification 并亲自致电-endTimedEvent:withParameters:。但是,我想尊重 Flurry 的 setSessionContinueSeconds 属性,并且在会议结束之前不要结束活动。这样,如果用户在 10 秒内返回应用程序,他们仍然处于跟踪他们在视图上的时间的同一事件下。

有没有办法做到这一点?

例如,是否有在会话 willEnd/didEnd 时调用的委托方法,我可以在 Flurry 之前手动调用 -endTimedEvent:withParameters:?或者,有一种方法可以在定时事件处于活动状态时将参数附加到它(而不结束它)。这样当 Flurry 结束会话时,事件已经设置了参数。

【问题讨论】:

    标签: ios analytics flurry flurry-analytics


    【解决方案1】:

    1) Flurry 有一项功能(仅在 iOS 上)允许会话继续进入后台,您可以针对此用例进行尝试。

    [Flurry setBackgroundSessionEnabled:Yes]

    您可以在我们的 SDK 随附的 Analytics 自述文件中找到有关这些方法和其他方法的更多详细信息。

    [Flurry setBackgroundSessionEnabled:(BOOL)backgroundSessionEnabled];

    默认情况下禁用此选项。启用后,如果应用暂停的时间超过会话过期超时,Flurry 将不会完成会话。应用程序暂停时不会发送会话报告,只会发送 应用程序终止时发送。这允许在后台运行的应用程序继续收集事件数据。应用程序在后台花费的时间会影响应用程序终止时报告的应用程序会话的长度。

    [Flurry pauseBackgroundSession];

    如果 setBackgroundSessionEnabled: 设置为 YES,此方法很有用。当应用程序完成所有后台任务(例如播放音乐)时,可以调用它来暂停会话。如果 setSessionReportsOnPauseEnabled 设置为 YES,则会发送会话报告。如果应用在会话过期超时之前恢复,会话将继续,否则将开始新的会话。

    2)您可以将数据保存在一个数组中,并将参数放入一个单独的事件中,该事件在定时事件之后触发。

    【讨论】:

      猜你喜欢
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 2016-06-02
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多