[英]Recording time spend in a tab using Flurry Analytics
I currently have multiple tabs within my application. 我的应用程序中目前有多个标签。 What I would like to do is record the amount of time the user spends in the selected tab using Flurry Analytics.
我想做的是使用Flurry Analytics在所选标签中记录用户花费的时间。 Usually I would start recording when
viewDidAppear
is call and stop recording when the viewDidDisappear
method is called. 通常,我会在调用
viewDidAppear
时开始记录,而在viewDidDisappear
方法时停止记录。
viewDidAppear viewDidAppear
[Flurry logEvent:@"Tab_News" withParameters:nil timed:YES];
viewDidDisappear viewDidDisappear
[Flurry endTimedEvent:@"Tab_News" withParameters:nil];
My problem is that when a video gets played within the tab the viewDidDisappear
and viewDidAppear
methods get called even thought the user doesnt physically leave the tab. 我的问题是,当在选项卡中播放视频时,即使用户没有实际离开选项卡,也会
viewDidDisappear
和viewDidAppear
方法。
Please help me with suggestions as to how I can circumvent this. 请帮助我提出有关如何规避此问题的建议。
Create a BOOL
called videoPlaying
to track if a video is being played. 创建一个名为
videoPlaying
的BOOL
来跟踪是否正在播放视频。 When you play the video set it to YES
. 播放视频时,将其设置为
YES
。 In viewDidDisappear
only endTimedEvent
if (videoPlaying == NO)
if (videoPlaying == NO)
在viewDidDisappear
仅显示endTimedEvent
The same applies to viewDidAppear
. 这同样适用于
viewDidAppear
。 If videoPlaying == YES
don't logEvent
and then set videoPlaying = NO
. 如果
videoPlaying == YES
请不要记录logEvent
,然后设置videoPlaying = NO
。
Something like this: 像这样:
- (void)viewDidLoad
{
_videoPlaying = NO;
}
- (void)viewDidAppear
{
if (_videoPlaying == YES) {
_videoPlaying = NO;
} else {
[Flurry logEvent:@"Tab_News" withParameters:nil timed:YES];
}
}
- (void)viewDidDisappear
{
if (_videoPlaying == NO) {
[Flurry endTimedEvent:@"Tab_News" withParameters:nil];
}
}
- (void)playVideo
{
_videoPlaying = YES;
// Play video
}
If you're targeting iOS 6, you can do the following: 如果您以iOS 6为目标,则可以执行以下操作:
- (void)viewDidLoad {
[super viewDidLoad];
[Flurry logEvent:@"Tab_News" withParameters:nil timed:YES];
}
- (void)dealloc {
[Flurry endTimedEvent:@"Tab_News" withParameters:nil];
}
This is valid if you present this ViewController as soon as it's loaded. 如果您在加载此ViewController时立即提出,则此方法有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.