逐步让 Google Analytics 在 iOS 上的 PhoneGap 1.2.0 中工作(phonegapalytics)
Posted
技术标签:
【中文标题】逐步让 Google Analytics 在 iOS 上的 PhoneGap 1.2.0 中工作(phonegapalytics)【英文标题】:Step by step to get Google Analytics working in PhoneGap 1.2.0 on iOS (phonegapalytics) 【发布时间】:2011-11-11 16:30:53 【问题描述】:如何在 ios 的 PhoneGap 1.2.0 中安装 Google Analytics?
【问题讨论】:
【参考方案1】:首先,我必须非常感谢 here. 的家伙,他们的博客提供了巨大的帮助,但我仍然需要做更多的事情才能最终让它发挥作用。
我将逐步完成它,以便您可以让它在非常基本的水平上工作,然后您可以从那里开始。我发现即使是最轻微的错误也会把事情搞砸。
我假设你已经安装了 PhoneGap 1.2.0 并且正在使用 Xcode 4.2
第一部分
让一个基本的 PhoneGap 应用程序正常工作。关注PhoneGap guide 并开始工作。
第二部分
下载 PhoneGap 谷歌分析插件。 我发现最简单的方法就是从here. 下载 zip 文件,你会得到一堆你不需要的东西,但没关系。
在您的下载目录中展开文件。进入展开的目录.. 进入 iPhone 文件夹,您应该会看到 GoogleAnalytics 文件夹。
在 Xcode 中,右键单击项目(顶部的蓝色块)并选择“将文件添加到”。导航到展开的文件夹。点击“GoogleAnalytics”文件夹。确保选择了“将文件复制到目标组的文件夹(如有必要)”并将其添加到目标。点击“添加”。将Xcode中的文件夹中的文件拖到Plugins文件夹中。
返回 Finder 并打开项目目录。将 GoogleAnalyticsPlugin.js
从 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>
(记住这是 phonegap 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="GoogleAnalyticsPlugin.js"></script>
下面
<script type="text/javascript" charset="utf-8" src="phonegap-1.2.0.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 Analytics 部分添加到项目中。这是 Google 提供的部分,但它方便地包含在 phonegap ios GoogleAnalytics/GoogSDK 插件文件夹中。
在 Xcode 中,转到 GoogleAnalytics/GoogSDK
文件夹并将 GANTracker.h
和 libGoogleAnalytics.a
文件拖到 Plugins 目录中。
基本上,您需要将它们从“蓝色”GoogleAnalytics/GoogSDK
文件夹复制到“黄色”文件夹中,以便可以通过头文件找到它们。
E部分
接下来我们需要将 sqlite(Google Analytics 在不在线时存储数据的地方)和 CFNetwork(以便 Google Analytics 可以上传数据)添加到项目中。
在 Xcode 中单击项目(文件顶部的蓝色部分)。单击主要目标。然后单击构建阶段。列表中的第三项是“Link Binary with Libraries”。请注意,其中有两个.. 选择最上面的一个。打开它并单击+号。添加libsqlite3.0.dylib
,然后添加CFNetwork.framework
。
F部分
最后(几乎完成了)我们需要设置插件。转到PhoneGap.plist
文件。在 Plugins 下添加另一个条目,键为 googleAnalyticsPlugin
(javascript 名称),值为 GoogleAnalyticsPlugin
(Obj-C 部分)。
在 ExternalHosts 下添加 *
条目
现在尝试运行。手指交叉它会起作用。
测试它以运行程序然后使用新的 Google Analytics Real Time (BETA) 模式的最佳方法,因为您可以看到正在实时跟踪的页面。
您需要更改为新版本的 Google Analytics(分析)(它应该是顶部的明显链接以移动到新版本)。打开 GA 帐户,转到 Home..REAL_TIME... 概览。 您应该会在几秒钟内看到 TEST 页面跟踪。
注意:您无法实时跟踪事件。您需要等待它们被处理。
问题
我在查看编译源代码和将二进制文件与库链接时遇到了一些问题。 GoogleAnalytics 部分将显示为红色。如果它们是红色的,则意味着您的项目找不到它们,我认为您如何解决这个问题取决于您的 Xcode 版本,因此您可能需要谷歌一下来解决这个问题。我所做的是删除 GoogleAnalytics(按 - 号)然后将文件拖入。如果它显示为“正确的图标”(而不是红色框),它应该可以工作。
也在 Android 上做吗?
我假设如果您使用的是 Phonegap,那么您可能也在使用 android 版本。如果是这种情况,您可能需要查看this comparison Q+A 了解差异。
【讨论】:
哇,就像一本书。干得好:) 谢谢。这是大约一周令人沮丧的黑客攻击的结果。希望它能帮助其他人避免浪费大量时间。 @Tim 非常感谢你,我也在找这个。顺便说一句,对于主机,不需要 ExternalHosts 是 *.您可以设置发送请求的域 google-analytics.com。 不客气。是的,我知道外部主机。我只是将其设置为 *,因此将其作为故障点的可能性较小。 写得好!这真的帮助了我。我遇到了一个问题,找不到 GoogleAnalyticsPlugin,我不得不返回并将文件添加为一个组而不是参考。希望对某人有所帮助。【参考方案2】:非常感谢您的出色工作,我唯一的困惑是这个块:
function trackpage(id)
console.log("start trackpage: " + id);
window.plugins.googleAnalyticsPlugin.trackPageview(id);
console.log("end trackpage: " + id);
必须将它放在 onready
函数之外才能在我的应用程序中工作。
【讨论】:
以上是关于逐步让 Google Analytics 在 iOS 上的 PhoneGap 1.2.0 中工作(phonegapalytics)的主要内容,如果未能解决你的问题,请参考以下文章
在 IOS 6 中实现 Google Analytics 2
Google Analytics(分析)iOS和Alamofire以及cocoapods
在 iOS 上将 Google Analytics 与 Swift 结合使用