Sie möchten das SDK wirklich verwenden. Es hat einige Funktionen, die für mobile Apps wie Abstürze, Play-Store-Integration nützlich sein wird. Außerdem werden Daten in Stapeln gesendet, um den Akkuverbrauch zu verbessern, und es können auch Treffer in die Warteschlange eingereiht werden, während die App offline ist, um gesendet zu werden, wenn sie online ist. Sie können das nicht mit den Javascript-Implementierungen emulieren.
Also, was Sie schreiben müssen, ist Javascript Methoden, die Daten aus dem WebView zurück zum Mutter Ein Teil der App senden. This other Stack Overflow thread hat mehr Details, wie man das macht.
So ist die Javascript-Google Analytics-Interaktionen zu verfolgen wie folgt aussehen könnte.
var _gaq = {};
_gaq.push = function(arr){
var i, hit;
hit = arr.slice(1).join('&');
location.href = 'analytics://'+arr[0]+'?'+arr;
};
Jetzt wird dies für Ihre Datei ga.js als Ersatz arbeiten, können Sie immer noch die gleiche API verwenden können, wie Sie auf _gaq heute auf Ihrem Web verwenden App, und der Adapter über Willen sendet seine Daten heimisch te Teil der APP. Und dann müssen Sie nur den nativen Teil schreiben, der diese HTTP-Anfrage abfängt und das native SDK verwendet, um die Google Analytics-Funktionen auszugeben.
Ein normaler _gaq.push(['_trackPageview', '/homepage']);
wird ein uri wie analytics://_trackPageview?/homepage
werden, jetzt müssen Sie nur abfangen und analysieren, dass auf dem nativen Teil.
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL *url = [request URL];
NSLog(@"Hit detected %@", url.absoluteString);
if ([[url scheme] isEqualToString:@"analytics"]) {
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
if ([url.host isEqualToString:@"_trackPageview"]) {
// Get the page from parameters and then track the native View.
// (...)
[tracker trackView:page];
}
else if ([url.host isEqualToString:@"_trackEvent"]) {
// Get the event parameters from url parameters and then track the native GA Event.
// (...)
[tracker trackEventWithCategory:cat
withAction:act
withLabel:lab
withValue:val];
}
// Check for all other analytics functions types
// (...)
// Cancel the request
return NO;
}
// Not an analytics: request.
return YES;
}
Ich hoffe, es hat Ihnen einen guten Ausgangspunkt gegeben. Viel Glück.
Haben Sie in der Hybrid-App schon einmal Aufruhr benutzt? Ich sehe noch keine Bibliotheksunterstützung, vielleicht muss ich härter schauen \ – Vineet