2015-05-01 1 views
0

При нажатии кнопки я отправляю пользователя на внешний URL-адрес (сафари). Я должен был отслеживать эти действия, так что я включить вызов Google Analytics прямо перед я называю OpenUrl()Google Analytics iOS - открытые URL-адреса Hangs

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]; 
} 

Это успешно получает меня на URL в сафари, но возвращаться в приложение, это просто замораживали. Я попробовал обернуть его в блок главной очереди dispatch_async, без везения.

Если я удалю линию отслеживания google analytics, она отлично работает. Это ошибка в Google Analytics?

+0

Когда вы удаляете строку отслеживания google analytics, вы также удаляете строку 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]) 
} 

Я надеюсь, что google рассматривает этот вызов, поскольку это не оптимальное решение.

+0

Я пробовал это, но безуспешно. –