0

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

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

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

有没有办法做到这一点?

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

4

1 回答 1

0

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

[Flurry setBackgroundSessionEnabled:是]

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

[Flurry setBackgroundSessionEnabled:(BOOL)backgroundSessionEnabled];

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

[Flurry pauseBackgroundSession];

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

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

于 2016-07-27T23:09:14.267 回答