我希望这个问题足够明确。否则,我道歉。 我制作了一款适用于Android和iOS的Phonegap应用程序。它里面有很多html文件,我没有兴趣跟踪它们的使用,但我确实知道应用程序,语言,设备,版本......以及所有这些东西的扩散只能通过调用cordova插件的视图提供。
在Android上,按照包含Google Analytics的标准说明进行操作非常简单。
但我还没有找到在iOS上实现这一目标的方法。按照标准说明(https://developers.google.com/analytics/devguides/collection/ios/v3/)时,我不知道到达这里时该怎么办:
因为我发现的是:
在查看CDVViewController时,我们看到了:
我想知道我在哪里放置库,如果在“app.xcodeproj”文件或相应的“CordovaLib.xcodeproj”中,等等。我盲目地尝试了几个可能性,但没有任何工作。
我必须认识到我对iOS编程知之甚少,足以制作Phonegap应用程序,然后按照任何类型的教程来改进它们......
我也尝试了其他解决方案,(没有插件......)但是没办法。
有什么办法吗?提前谢谢。
答案 0 :(得分:0)
最后,我得到了解决方案!
我做的是:
我不知道它是否相关但是在步骤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)。