Google Analytics iOS - 打开 URL 挂起

Posted

技术标签:

【中文标题】Google Analytics iOS - 打开 URL 挂起【英文标题】:Google Analytics iOS - Open URL Hangs 【发布时间】:2015-05-01 18:35:47 【问题描述】:

单击按钮后,我将用户发送到外部 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 中的 url,但是在回到应用程序时,它只是被冻结了。我尝试将它包装在 dispatch_async 主队列块中,但没有成功。

如果我删除谷歌分析跟踪器行,它工作正常。这是谷歌分析中的错误吗?

【问题讨论】:

当您删除“谷歌分析跟踪器行”时,您是否也删除了 createEventWithCategory 行?如果您不这样做,您的代码可能不会使其成为 canOpenUrl if 和 openURL 调用。 我已经调试并看到代码完成,所以我知道一切都运行了 谁能解决这个问题? 【参考方案1】:

我找到了一个临时解决方案,虽然它不是最好的。基本上,如果我一秒钟发送跟踪代码,就不会发生挂起。我检查了我的仪表板,呼叫仍然被跟踪。

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])

我希望 google 看看这个电话,因为这不是一个最佳解决方案。

【讨论】:

以上是关于Google Analytics iOS - 打开 URL 挂起的主要内容,如果未能解决你的问题,请参考以下文章

FCM 网络推送通知 Google Analytics

在 IOS 6 中实现 Google Analytics 2

为 iOS 实施 Google Analytics

Cordova google-analytics-plugin 导致 phonegap iOS 构建失败

iOS - 如何将 Firebase Analytics 与现有的 Google Analytics、GoogleService-Info.plist 集成

Google Analytics(分析)iOS和Alamofire以及cocoapods