逐步让 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.hlibGoogleAnalytics.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

为 iOS 实施 Google Analytics

Google Analytics(分析)iOS和Alamofire以及cocoapods

在 iOS 上将 Google Analytics 与 Swift 结合使用

iOS 上 Google/Analytics 的最新 pod 版本要我安装 Firebase

Google Analytics iOS - 打开 URL 挂起