如何在iOS Phonegap App的MainView(不在内部)中集成Google Analytics?

时间:2014-02-14 12:20:44

标签: ios cordova google-analytics

我希望这个问题足够明确。否则,我道歉。 我制作了一款适用于Android和iOS的Phonegap应用程序。它里面有很多html文件,我没有兴趣跟踪它们的使用,但我确实知道应用程序,语言,设备,版本......以及所有这些东西的扩散只能通过调用cordova插件的视图提供。

在Android上,按照包含Google Analytics的标准说明进行操作非常简单。

但我还没有找到在iOS上实现这一目标的方法。按照标准说明(https://developers.google.com/analytics/devguides/collection/ios/v3/)时,我不知道到达这里时该怎么办: enter image description here

因为我发现的是:

enter image description here

在查看CDVViewController时,我们看到了:

enter image description here

我想知道我在哪里放置库,如果在“app.xcodeproj”文件或相应的“CordovaLib.xcodeproj”中,等等。我盲目地尝试了几个可能性,但没有任何工作。

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

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

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

1 个答案:

答案 0 :(得分:0)

最后,我得到了解决方案!

我做的是:

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

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

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

       #import "GAI.h"
    
    1. En MainViewController.m放在开头

      #import "GAI.h"
      #import "GAIFields.h"
      #import "GAITracker.h"
      #import "GAIDictionaryBuilder.h"
      
    2. 然后注释出这些界限:

      /*
      
      - (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)。