我正在使用针对iOS的Flurry API,而且我遇到了一个似乎不受支持的用例:
我正在使用-logEvent:timed:
开始定时事件,以跟踪用户在视图上花费的时间。当用户在该视图上时,正在跟踪一些参数,我计划在用户离开视图时传递到-endTimedEvent:withParameters:
。
这是一个棘手的部分,如果用户在视图上显示应用程序,Flurry将在10秒后自动结束定时事件而不设置任何参数。当然,一种解决方案是观察UIApplicationWillResignActiveNotification
并自己致电-endTimedEvent:withParameters:
。但是,我想尊重Flurry的setSessionContinueSeconds
财产,并且在会议结束之前不要结束活动。这样,如果用户在10秒内返回应用程序,他们仍然处于跟踪他们在视图上的时间的同一事件。
有办法做到这一点吗?
例如,是否有一个委托方法,当会话将结束/ didEnd时,我可以在Flurry之前手动调用-endTimedEvent:withParameters:
?或者有一种方法可以在定时事件处于活动状态时将参数附加到定时事件(不结束它)。这样,当Flurry结束会话时,事件已经设置了参数。
答案 0 :(得分:0)
1)Flurry有一项功能(仅限iOS),允许会话继续进入后台,您可以尝试使用此用例。
[Flurry setBackgroundSessionEnabled:Yes]
您可以在我们的SDK附带的Google Analytics自述文档中找到有关这些方法和其他方法的更多详细信息。
[Flurry setBackgroundSessionEnabled:(BOOL)backgroundSessionEnabled];
默认情况下禁用此选项。启用后,如果应用程序暂停的时间超过会话到期超时,Flurry将无法完成会话。当应用程序暂停时,将不会发送会话报告 在申请被终止时发送。这允许在后台运行的应用程序继续收集事件数据。应用程序在后台花费的时间有助于应用程序终止时报告的应用程序会话的长度。
[Flurry pauseBackgroundSession];
如果setBackgroundSessionEnabled:设置为YES,则此方法很有用。当应用程序完成所有后台任务(例如播放音乐)以暂停会话时,可以调用它。如果setSessionReportsOnPauseEnabled设置为YES,则发送会话报告。如果应用程序在会话到期超时之前恢复,则会话将继续,否则将开始新会话。
2)您可以将数据保存在一个数组中,并将参数放入一个单独的事件中,该事件在定时事件之后触发。