0
当您将iOS应用程序移至后台时发送事件时,Google Analytics的行为如何?这些事件是否能够提供服务?我们是否需要专门调用[[GAI sharedInstance] dispatch];在那些情况下?在iOS中的应用程序处于后台时发送Google Analytics事件
当您将iOS应用程序移至后台时发送事件时,Google Analytics的行为如何?这些事件是否能够提供服务?我们是否需要专门调用[[GAI sharedInstance] dispatch];在那些情况下?在iOS中的应用程序处于后台时发送Google Analytics事件
首先,你绝对可以做你的建议,以:
[[GAI sharedInstance] dispatch];
上有谷歌Analytics(分析)背景第二调度here,基本上给你这个方法:
// This method sends any queued hits when the app enters the background.
- (void)sendHitsInBackground {
__block BOOL taskExpired = NO;
__block UIBackgroundTaskIdentifier taskId =
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
taskExpired = YES;
}];
if (taskId == UIBackgroundTaskInvalid) {
return;
}
__weak AppDelegate *weakSelf = self;
self.dispatchHandler = ^(GAIDispatchResult result) {
// Send hits until no hits are left, a dispatch error occurs, or
// the background task expires.
if (result == kGAIDispatchGood && !taskExpired) {
[[GAI sharedInstance] dispatchWithCompletionHandler:weakSelf.dispatchHandler];
} else {
[[UIApplication sharedApplication] endBackgroundTask:taskId];
}
};
[[GAI sharedInstance] dispatchWithCompletionHandler:self.dispatchHandler];
}
覆盖applicationDidEnterBackground ,如下所示:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[self sendHitsInBackground];
}
and overri de applicationWillEnterForeground,像这样:
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Restores the dispatch interval because dispatchWithCompletionHandler
// has disabled automatic dispatching.
[GAI sharedInstance].dispatchInterval = 120;
}