2011-11-11 6 views

答えて

31

最初に私は男に多くのクレジットを与えなければならないhere.彼らのブログはすばらしい助けになっていましたが、ついにそれを稼働させるためにもう少しのことをしなければなりませんでした。

私はそれを非常に基本的なレベルで動作させることができるようにステップバイステップで行くつもりですし、そこからそれを取ることができます。私は少しでも間違いが物事を混乱させることがわかった。

私はあなたのPhoneGap 1.2.0インストールされていると仮定していますとXcode 4.2

を使用している

PART

基本PhoneGapのアプリが動作して取得します。 PhoneGap guideに従ってください。


パートB

は、PhoneGapのGoogle Analyticsのプラグインをダウンロードしてください。 私が一番簡単なことは、zipファイルをダウンロードすることです。here.あなたは必要ではないものの山積みを取得しますが、問題はありません。

ダウンロードディレクトリ内のファイルを展開します。拡張されたディレクトリ.. iPhoneフォルダに移動し、GoogleAnalyticsフォルダが表示されます。

Xcodeで、プロジェクト(右上の青いブロックのもの)を右クリックし、 'ファイルを追加する'を選択します。展開したフォルダに移動します。 [GoogleAnalytics]フォルダをクリックします。 「宛先グループのフォルダにファイルをコピーする(必要な場合)」が選択され、ターゲットに追加されていることを確認します。 [追加]をクリックします。 XcodeのフォルダにあるファイルをPluginsフォルダにドラッグします。

Finderに戻り、プロジェクトディレクトリを開きます。 GoogleAnalyticsフォルダのGoogleAnalyticsPlugin.jsを 'www'フォルダにコピーします。 Xcodeは、ファイルの再保存に関する警告を表示します。[閉じる]をクリックします。

index.htmlファイルに移動します。 function onDeviceReady()に、関数の先頭に次の行を追加します。

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

次の行を見つけ、まだindex.htmlファイルに、今すぐ(同じスクリプトブロック内)onDeviceReady機能の下

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

を、以下の機能を追加し

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

(これはphonegap 1.2.0です)

の後に次の行を追加します。

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

これにより、テストアプリでクリックできるリンクが表示されます。

NB。あなたには、追跡中のページにスラッシュ(/)が必要です。したがっては動作しますが、javascript:trackpage('TEST')は動作しません。

最後に、まだ

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

以下のindex.html次の行を追加します

<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 

パートD

次のプロジェクトにGoogleアナリティクスの一部を追加します。これはGoogleが提供する部分ですが、便利なことに、GoogleAnalytics/GoogSDKプラグインフォルダのphonegapに含まれています。

XcodeでGoogleAnalytics/GoogSDKフォルダに移動し、GANTracker.hlibGoogleAnalytics.aファイルをPluginsディレクトリにドラッグします。

基本的には、 'blue' GoogleAnalytics/GoogSDKフォルダーから 'yellow'フォルダーにコピーして、ヘッダーファイルで見つけることができます。


パートE

次はプロジェクトにsqliteの(ここで、Googleアナリティクスのデータが格納されていないオンライン)とCFNetworkは(そう、Googleアナリティクスは、データをアップロードすることができます)を追加する必要があります。

Xcodeでプロジェクト(ファイルの上部にある青色のもの)をクリックします。メインターゲットをクリックします。ビルド段階をクリックします。リストの3番目の項目は、 "Link Binary With Libraries"です。これらの2つがあることに注意してください。それを開き、+記号をクリックします。 libsqlite3.0.dylibを追加し、CFNetwork.frameworkを追加します。


PART F

(ほとんどが)最後に

我々はセットアップにプラグインが必要です。 PhoneGap.plistファイルに移動します。プラグインの下に、キーがgoogleAnalyticsPlugin(javascript名)、値が(Obj-C部分)の別のエントリを追加します。ExternalHostsの下

*エントリ

今すぐ試してみて、実行を追加します。指はそれを越えて機能します。

プログラムを実行して新しいGoogleアナリティクスのリアルタイム(ベータ版)モードを使用して、ページが有効になっていることを確認してください。

新しいバージョンのGoogleアナリティクスに変更する必要があります(新しいバージョンに移行するには、上部に明白なリンクが必要です)。 GAアカウントを開き、[ホーム... REAL_TIME ...概要]に移動します。 TESTページのトラックが数秒以内に届くはずです。

注:リアルタイムでイベントを追跡することはできません。あなたはそれらが処理されるのを待つ必要があります。

の問題

ライブラリでソースをコンパイルリンクバイナリを見たとき、私はいくつかの問題を抱えていました。 GoogleAnalyticsの部品は赤色で表示されます。彼らが赤い場合は、あなたのプロジェクトがそれらを見つけることができないことを意味し、あなたがこれを解決する方法はあなたのXcodeのバージョンに依存するので、それを解決するために少し詳しくgoogleする必要があるかもしれません。私がしたことは、GoogleAnalyticsを削除して(記号を押して)ファイルをドラッグすることでした。「適切なアイコン」(赤いボックスとは対照的に)として表示されていれば、それはうまくいきました。

Androidでも同じですか?

あなたはおそらくAndroid版をやっているかもしれないPhonegapを使用していると思います。このような場合は、this comparison Q + Aの相違点を確認してください。あなたの偉大な仕事のために多く

+0

ワウは本のようです。素敵な仕事:) –

+1

ありがとう。約1週間のハッキングの不満の結果です。うまくいけば、他人が多くの時間を無駄にするのを避けるのに役立ちます。 – Tim

+1

@Tim大変ありがとう、これも探していた。 Btw、ホストの場合、*するために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関数外で入れていました。

関連する問題