-1

Flurry を使用して iOS アプリのすべてのボタン クリックをログに記録するにはどうすればよいですか? アプリでクリック フローを実現したい。

4

2 に答える 2

1

有効なアプローチは、次のようにメソッドをサブクラス化UIApplicationして上書きすることです。-sendEvent:

- (void)sendEvent:(UIEvent *)event {
    [super sendEvent:event];

    NSSet * allTouches = [event allTouches];
    if ([allTouches count] > 0) {
        UITouch *touch = [allTouches anyObject];
        if (touch.phase == UITouchPhaseBegan) {
             CGPoint touchLocation = [touch locationInView:touch.window];
             NSDictionary *params = @{
                 @"touch" : @{
                     @"x" : @(touchLocation.x),
                     @"y" : @(touchLocation.y)
                 }
             };
             [Flurry logEvent:@"Seach" withParameters:params];
        }
    }
}

UIApplication次に、で使用するクラスを変更するだけですmain.m。たとえば、UIApplicationサブクラスが呼び出されMyApplicationた場合、メインは次のようになります

int main(int argc, char *argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([MyApplication class]));
    }
}

免責事項
これはアプリのパフォーマンスに大きな影響を与える可能性があります。賢く使ってください。

于 2013-04-10T03:02:15.313 に答える
1

AppDelegate で

#import "Flurry.h"
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{     
     [Flurry startSession:@"sessionkey"];
     ...   
}

と..

-(IBAction) Click_Search:(id)sender
{     
     [Flurry logEvent:@"Seach"]; // remain logEvent 
     ...
}
于 2013-04-10T02:47:29.730 に答える