2015-05-01 38 views
0

點擊一個按鈕後,我會將用戶發送到外部URL(safari)。我跟蹤這個動作,所以我有一個電話到Google Analytics之前,我打電話的OpenURL()Google Analytics(分析)iOS - 開放式網址掛起

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

當您刪除「谷歌分析跟蹤線」,你是否也刪除createEventWithCategory線?如果你不這樣做,你的代碼可能不會讓它成爲canOpenUrl if和openURL調用。 – djabi

+0

我調試過並看到代碼完成,所以我知道一切都已經運行 – Jameo

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

我希望谷歌看看這個電話,因爲這不是一個最佳的解決方案。

+0

我試過這個,但沒有成功。 –

相關問題