2011-11-11 32 views

回答

31

首先,我必須給這些傢伙很多功勞here.他們的博客幫助很大,但我仍然需要做更多的事情才能最終實現它。

我將逐步完成它,以便您可以在非常基本的層面上使用它,然後您可以從中取出它。我發現即使是絲毫錯誤都可以搞砸了。

我假設你已經安裝的PhoneGap 1.2.0,並且使用的Xcode 4.2


A部分

得到一個基本的PhoneGap應用工作。按照PhoneGap guide並獲得工作。


B部分

下載PhoneGap的谷歌分析插件。 我發現最簡單的事情就是從here.下載zip文件你會得到一堆你不需要但不重要的東西。

展開下載目錄中的文件。進入擴展目錄..進入iPhone文件夾,您應該看到GoogleAnalytics文件夾。

在Xcode中,右鍵點擊project(頂部的藍色塊),然後選擇'Add files to'。導航到展開的文件夾。點擊「GoogleAnalytics」文件夾。確保選中「將文件複製到目標組的文件夾(如有必要)」並將其添加到目標。點擊「添加」。將Xcode中文件夾中的文件拖到Plugins文件夾中。

回到Finder並打開項目目錄。將從GoogleAnalytics文件夾複製到'www'文件夾。 Xcode會給出關於重新保存文件的警告。只需點擊關閉。

轉到index.html文件。在function onDeviceReady()中將以下行添加到函數的開頭。

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

下一頁添加以下功能onDeviceReady作用下(同一個腳本塊內)

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

現在,仍然在index.html文件,找到行

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

(請記住這是電話1.2.0)

後面添加以下行。

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

這給出了一個鏈接,您可以點擊測試應用程序。

注意:您必須在您正在追蹤的頁面中有正斜槓(/)。所以javascript:trackpage('/TEST')將工作,而javascript:trackpage('TEST')不會。

最後,還是在index.html的下方添加

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

以下行

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

別再費心又運行它。它不會工作。


C部

接着轉到所述GoogleAnalytics.h文件。只需擦拭它。這裏有一堆問題。 JSON似乎現在是JSONKit和PhoneGapCommand現在是PGPlugin ..只需將其粘貼即可。PhoneGap文檔似乎遍佈全球。

#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 

PART d

下一頁添加谷歌Analytics(分析)部分項目。這是谷歌提供的一部分,但它可以方便地包含在GoogleAnalytics/GoogSDK插件文件夾中。

在Xcode中,轉到GoogleAnalytics/GoogSDK文件夾並將GANTracker.hlibGoogleAnalytics.a文件拖到Plugins目錄。

基本上你需要將它們從'藍色'GoogleAnalytics/GoogSDK文件夾複製到'黃色'文件夾中,以便它們可以通過頭文件找到。


E部分

接下來,我們需要添加源碼(其中谷歌分析存儲數據時,不在線)和CFNetwork的(因此谷歌Analytics(分析)可以將數據上傳)到項目中。

在Xcode中點擊項目(文件頂部的藍色事物)。點擊主要目標。然後點擊構建階段。列表中的第三項是「帶庫的鏈接二進制文件」。請注意,其中有兩個選擇最上面的一個。打開它並點擊+號。添加libsqlite3.0.dylib,然後添加CFNetwork.framework


F部

最後(幾乎沒有),我們需要安裝插件。轉到PhoneGap.plist文件。在插件下添加另一個條目,其中鍵爲googleAnalyticsPlugin(javascript名稱),值爲GoogleAnalyticsPlugin(Obj-C部分)。

在ExternalHosts添加*進入

現在嘗試運行。手指穿過它將起作用。

最好的方式來測試它運行程序,然後使用新的谷歌分析實時(BETA)模式,因爲您可以看到正在實時跟蹤的頁面。

您需要更改爲Google Analytics的新版本(它應該是頂部顯而易見的鏈接,以轉到新版本)。打開GA帳戶,進入首頁..REAL_TIME ...概述。 您應該會在幾秒鐘內看到TEST頁面曲目。

注意:您不能實時跟蹤事件。你需要等待他們被處理。

ISSUES

我看編譯源代碼鏈接二進制與圖書館時遇到了一些問題。 GoogleAnalytics部分會顯示爲紅色。如果它們是紅色的,這意味着你的項目找不到它們,我想你如何解決這個問題取決於你的Xcode版本,所以你可能需要谷歌來解決這個問題。我所做的是刪除GoogleAnalytics(按 - 號),然後拖入文件。如果它顯示爲「正確的圖標」(而不是紅色框),它應該已經工作。

在Android上進行操作嗎?

我假設你使用的是Phonegap,你可能也在做一個Android版本。如果是這種情況,您可能需要查看this comparison Q + A的差異。

+0

哇,就像一本書。幹得好:) –

+1

謝謝。這是大約一週令人沮喪的黑客攻擊的結果。希望它能幫助別人避免浪費大量時間。 – Tim

+1

@Tim非常感謝你,也正在尋找這個。順便說一句,對於主機,不需要ExternalHosts是*。您可以設置google-analytics.com,這是發送請求的域。 – RaphaelDDL

1

感謝這麼多的偉大的工作,我唯一的困惑與此塊:

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

不得不把它的onready功能之外它在我的應用程序工作。

相關問題