0

我目前在我的应用程序中有多个选项卡。我想做的是使用 Flurry Analytics 记录用户在所选选项卡中花费的时间。通常我会在调用时开始录制,viewDidAppear并在调用方法时停止录制viewDidDisappear

viewDidAppear

[Flurry logEvent:@"Tab_News" withParameters:nil timed:YES];

viewDidDisappear

[Flurry endTimedEvent:@"Tab_News" withParameters:nil];

我的问题是,当在标签中播放视频时,即使用户没有实际离开标签,也会调用方法viewDidDisappearviewDidAppear

请帮助我就如何规避这个问题提出建议。

4

2 回答 2

1

如果正在播放视频,请创建一个BOOL调用来跟踪。videoPlaying播放视频时将其设置为YES. viewDidDisappear仅在endTimedEvent if (videoPlaying == NO)

这同样适用于viewDidAppear。如果videoPlaying == YES没有logEvent,然后设置videoPlaying = NO.

像这样的东西:

- (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
}
于 2013-07-18T16:08:40.873 回答
0

如果您的目标是 iOS 6,您可以执行以下操作:

- (void)viewDidLoad {
    [super viewDidLoad];
    [Flurry logEvent:@"Tab_News" withParameters:nil timed:YES];
}

- (void)dealloc {
    [Flurry endTimedEvent:@"Tab_News" withParameters:nil];
}

如果您在加载此 ViewController 后立即显示它,则这是有效的。

于 2013-07-18T16:49:54.907 回答