2013-07-18 48 views
0

我目前在我的應用程序中有多個選項卡。我想要做的是使用Flurry Analytics記錄用戶在選定選項卡中花費的時間。 通常我會在viewDidAppear被調用時開始錄製,並在調用viewDidDisappear方法時停止錄製。使用Flurry Analytics在標籤中記錄時間花費

viewDidAppear

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

viewDidDisappear

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

我的問題是,當某視頻選項卡中的viewDidDisappearviewDidAppear方法被調用內發揮甚至以爲用戶犯規物理離開的標籤。

請幫我提出一些建議,告訴我如何避免這種情況。

回答

1

創建一個名爲videoPlayingBOOL來跟蹤是否正在播放視頻。播放視頻時,將其設置爲YESviewDidDisappear只有endTimedEventif (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 
} 
+0

好主意,謝謝。 – justMike

+0

不客氣! – 2013-07-19 14:53:36

0

如果你的目標iOS 6中,您可以執行以下操作:

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

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

,如果你一旦它的加載呈現這個視圖控制器這是有效的。