2011-11-11 18 views

risposta

31

Prima di tutto devo dare molto credito ai ragazzi here. Il loro blog è stato di enorme aiuto, ma ho dovuto ancora fare ancora un paio di cose per farlo funzionare.

Ho intenzione di analizzarlo passo dopo passo in modo che tu possa farlo funzionare a un livello molto semplice e quindi puoi prenderlo da lì. Ho scoperto che anche l'errore minimopuò rovinare tutto.

Io parto dal presupposto che avete installato PhoneGap 1.2.0 e utilizza Xcode 4,2


PARTE A

Prendi un PhoneGap un'applicazione base di lavoro. Segui lo PhoneGap guide e fallo funzionare.


PARTE B

Scarica il PhoneGap Google Analytics Plugin. Trovo che la cosa più semplice da fare sia scaricare il file zip da here.. Ottieni una pila di cose che non ti servono ma non importa.

Espandi il file nella directory di download. Vai nella cartella espansa .. nella cartella iPhone e dovresti vedere la cartella GoogleAnalytics.

In Xcode, fare clic con il tasto destro del mouse sul progetto (il blocco blu in alto) e scegliere 'Aggiungi file a'. Passa alla cartella espansa. Fai clic sulla cartella "GoogleAnalytics". Assicurati che 'copia i file nella cartella del gruppo di destinazione (se necessario)' sia selezionato e che sia aggiunto alla destinazione. Clicca 'Aggiungi'. Trascina i file nella cartella in Xcode nella cartella Plugin.

Torna al Finder e apri la directory del progetto. Copia lo GoogleAnalyticsPlugin.js dalla cartella GoogleAnalytics nella cartella "www". Xcode darà un avvertimento sul ri-salvataggio del file .. Basta fare clic su Chiudi.

Passare al file index.html. In function onDeviceReady() aggiungere la seguente riga all'inizio della funzione.

window.plugins.googleAnalyticsPlugin.startTrackerWithAccountID("YOUR UA CODE");

Successivamente aggiungere la seguente funzione sotto la funzione onDeviceReady (all'interno dello stesso blocco di script)

function trackpage(id) 
{ 
    console.log("start trackpage: " + id); 
    window.plugins.googleAnalyticsPlugin.trackPageview(id); 
    console.log("end trackpage: " + id); 
} 

Ora, ancora nel file index.html, trovare la linea di

<li>Check your console log for any white-list rejection errors.</li> 

(ricordare che questo è PhoneGap 1.2.0)

aggiungere la seguente riga dopo di esso.

<li class="arrow"><a href="javascript:trackpage('/TEST');">test analytics</a></li> 

Fornisce un collegamento su cui è possibile fare clic nell'app di prova.

NB. È DEVE avere una barra (/) nella pagina che stai monitorando. Quindi javascript:trackpage('/TEST') funzionerà mentre lo javascript:trackpage('TEST') NON funzionerà.

Infine, sempre nel index.html aggiungere la seguente riga

<script type="text/javascript" charset="utf-8" src="GoogleAnalyticsPlugin.js"></script> 

sotto

<script type="text/javascript" charset="utf-8" src="phonegap-1.2.0.js"></script> 

Non preoccupatevi cercando di correre ancora. Non funzionerà.


PARTE C

successivo goto il file GoogleAnalytics.h. Basta cancellarlo .. Ci sono un sacco di problemi qui. JSON sembra essere ora JSONKit e PhoneGapCommand ora è PGPlugin. Basta incollarlo. La documentazione di PhoneGap sembra essere dappertutto.

#import <Foundation/Foundation.h> 

#ifdef PHONEGAP_FRAMEWORK 
#import <PhoneGap/PGPlugin.h> 
#import <PhoneGap/NSData+Base64.h> 
#import <PhoneGap/JSONKit.h> 
#else 
#import "PGPlugin.h" 
#import "NSData+Base64.h" 
#import "JSONKit.h" 
#endif 

#import "GANTracker.h" 

@interface GoogleAnalyticsPlugin : PGPlugin<GANTrackerDelegate> { 

} 

- (void) startTrackerWithAccountID:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; 
- (void) trackEvent:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; 
- (void) trackPageview:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; 

@end 

PARTE D

Avanti aggiungere la parte di Google Analytics per il progetto. Questa è la parte fornita da Google, ma è comodamente inclusa nella cartella dei plug-in di GoogleAnalytics/GoogSDK ios di PhoneGap.

In Xcode, passare alla cartella GoogleAnalytics/GoogSDK e trascinare i file GANTracker.h e libGoogleAnalytics.a nella directory Plugin.

Fondamentalmente è necessario copiarli dalla cartella "blu" GoogleAnalytics/GoogSDK in una cartella "gialla" in modo che possano essere trovati dai file di intestazione.


PARTE E

Avanti abbiamo bisogno di aggiungere SQLite (dove Google Analytics memorizza i dati quando non è in linea) e CFNetwork (quindi Google Analytics può caricare i dati) al progetto.

In Xcode fare clic sul progetto (la cosa blu nella parte superiore del file). Clicca sull'obiettivo principale. Quindi fare clic su Fasi di creazione. Il terzo elemento nell'elenco è "Collega binario con librerie". Nota che ce ne sono due .. scegli quello superiore. Aprilo e clicca sul segno +. Aggiungi libsqlite3.0.dylib quindi aggiungi CFNetwork.framework.


PARTE F

Infine (quasi lì) abbiamo bisogno di installare il plugin. Vai al file PhoneGap.plist. Sotto Plugin aggiungi un'altra voce con la chiave come googleAnalyticsPlugin (il nome javascript) e il valore come GoogleAnalyticsPlugin (la parte Obj-C).

Sotto ExternalHosts aggiungere una voce di *

Ora prova ed eseguire. Le dita incrociate funzionerà.

Il modo migliore per testarlo per eseguire il programma e quindi utilizzare la nuova modalità Real Time (BETA) di Google Analytics come è possibile vedere le pagine monitorate dal vivo.

È necessario passare alla nuova versione di Google Analytics (dovrebbe essere un collegamento evidente in alto per passare alla nuova versione). Apri l'account GA, vai a Home ... REAL_TIME ... Panoramica. Dovresti vedere la traccia della pagina TEST che entra in pochi secondi.

Nota: non è possibile tenere traccia degli eventi in tempo reale. Devi aspettare che vengano elaborati.

problemi

Ho avuto qualche problema quando si esaminano le compilare sorgenti e collegamento binari con le librerie. Le parti di GoogleAnalytics sarebbero visualizzate in rosso. Se sono in rosso significa che il tuo progetto non riesce a trovarli e penso che il modo in cui risolvi questo dipenda dalla tua versione di Xcode, quindi potresti dover fare un po 'di google per risolvere il problema. Quello che ho fatto è stato rimuovere GoogleAnalytics (premere il segno -) e trascinare il file. Se viene visualizzato come "icona appropriata" (anziché una casella rossa), avrebbe dovuto funzionare.

Lo fa anche su Android?

Suppongo che se stai usando PhoneGap probabilmente stai anche facendo una versione per Android. Se questo è il caso, si consiglia di controllare this comparison Q + A per le differenze.

+0

Waw, è come un libro. Bel lavoro :) –

+1

Grazie. È il risultato di circa una settimana di hacking frustrante. Speriamo che aiuti gli altri a evitare di sprecare un sacco di tempo. – Tim

+1

@Tim Grazie mille amico, cercavo anche questo. Btw, per gli host, non è necessario che ExternalHosts sia *. Puoi impostare google-analytics.com che è il dominio in cui vengono inviate le richieste. – RaphaelDDL

1

Grazie mille per il vostro grande lavoro, il mio unico confusione era con questo blocco:

function trackpage(id) 
{ 
    console.log("start trackpage: " + id); 
    window.plugins.googleAnalyticsPlugin.trackPageview(id); 
    console.log("end trackpage: " + id); 
} 

dovuto mettere fuori la funzione onready per farlo funzionare nella mia app.

Problemi correlati