点击按钮,我将用户发送到外部URL(safari)。我是要跟踪这个动作,所以我在调用openUrl()
之前就调用了谷歌分析。id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"action" action:@"button_press" label:@"link" value:nil] build]];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
这成功地让我进入了safari的网址,但是回到应用程序后,它就被冻结了。我已经尝试将它包装在dispatch_async主队列块中,没有运气。
如果我删除了谷歌分析跟踪器行,它可以正常工作。这是谷歌分析中的一个错误吗?
答案 0 :(得分:0)
我找到了一个临时解决方案,虽然它不是最好的。基本上,如果我发送跟踪代码一秒钟,挂起就不会发生。我检查了仪表板,然后跟踪了电话。
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
var tracker = GAI.sharedInstance().defaultTracker
tracker.send(GAIDictionaryBuilder.createEventWithCategory(category, action: event, label: label, value: nil).build() as [NSObject : AnyObject])
}
我希望谷歌看一下这个电话,因为这不是最佳解决方案。