如何将 Google Analytics 集成到 iOS Phonegap 应用程序的 MainView(而不是内部)中?

Posted

技术标签:

【中文标题】如何将 Google Analytics 集成到 iOS Phonegap 应用程序的 MainView(而不是内部)中?【英文标题】:How to integrate Google Analytics in the MainView (not inside) of a iOS Phonegap App? 【发布时间】:2014-02-14 12:20:43 【问题描述】:

我希望问题足够清楚。否则,我道歉。 我制作了一个在 androidios 上运行良好的 Phonegap 应用程序。它里面有很多 html 文件,我对跟踪它们的使用没有任何兴趣,但我确实知道应用程序的扩散、语言、设备、版本......以及所有这些东西只能在调用cordova插件的视图中提供。

在 Android 上,这非常简单,只需按照标准说明添加 Google Analytics。

但我还没有找到在 iOS 上执行此操作的方法。当遵循标准说明 (https://developers.google.com/analytics/devguides/collection/ios/v3/) 时,我不知道到达这里时该怎么做:

因为我发现的是:

查看 CDVViewController 时,我们看到:

我想知道我必须将库放在哪里,是在“app.xcodeproj”文件中还是在相应的“CordovaLib.xcodeproj”中,等等。我盲目地尝试了几种可能性,但没有任何效果。

我必须承认,我对 iOS 编程知之甚少,仅够制作 Phonegap 应用程序,然后按照任何类型的教程来改进它们......

我也尝试过其他解决方案,(没有插件...)但没有办法。

有什么办法吗?提前致谢。

【问题讨论】:

【参考方案1】:

我终于找到了解决办法!

我所做的是:

    按照https://developers.google.com/analytics/devguides/collection/ios/v3/ 中的说明执行步骤 1 和 2

我不知道这是否相关,但在第 1 步中,我将 SDK 文件放在了 App 的 Classes 文件夹中(AppDelegate.h 在哪里...)

在第2步中,记得放在开头:

   #import "GAI.h"

    En MainViewController.m 放在开头

    #import "GAI.h"
    #import "GAIFields.h"
    #import "GAITracker.h"
    #import "GAIDictionaryBuilder.h"
    

然后注释掉这些行:

/*

- (void) webViewDidStartLoad:(UIWebView*)theWebView

    return [super webViewDidStartLoad:theWebView];


- (void) webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error

    return [super webView:theWebView didFailLoadWithError:error];


- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType

    return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];


*/

最后,在这一行之前

  return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];

插入这个:

NSString* path = [NSString stringWithFormat:@"%@",request];

if([path hasPrefix:@"mailto"]==NO) 

    NSRange range = [path rangeOfString:@"/" options:NSBackwardsSearch];

    NSString* fileName = [NSString stringWithFormat:@"/%@",[path substringFromIndex:range.location + 1]];


    [[GAI sharedInstance].defaultTracker set:kGAIScreenName
                                       value:fileName];

    [[GAI sharedInstance].defaultTracker
     send:[[GAIDictionaryBuilder createAppView] build]];



仅此而已。现在您可以关注您的应用程序,甚至是cordova 处理的内部页面。

我必须把功劳归功于我的兄弟和http://blog.fltlab.net/2012/04/10/phonegap-and-googleanalytics/ 的人,他们给了我提示。

更新:更新到 Xcode 5.1、Cordova 3.4(我在 2.9)后,我不得不重新制作我的 cordova 应用程序,并重复所有这些步骤;但我必须在第 1 步链接另一个库 (libsqlite3.dylib)。

【讨论】:

以上是关于如何将 Google Analytics 集成到 iOS Phonegap 应用程序的 MainView(而不是内部)中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用DTM将App事件发送到Google Analytics

Firebase Bigquery 集成和 Google Analytics 部分参与其中

html 将Google Analytics与CRM集成

将Google Analytics与CRM集成

添加到 AppDelegate 时找不到 Google/Analytics.h 文件

将原始 Google Analytics 数据从 BigQuery 移动到 Amazon S3