2012-06-18 28 views
2

如果這不可行,那麼我應該如何在3分鐘的應用程序使用後執行此操作?這將用於評價我們的警報,但我寧願用戶有一些時間來實際使用該應用程序,然後纔會要求他們評分。第二次啓動後進行UIAlertView顯示

回答

6
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)options { 
    // ... 
    if ([self plusPlusLaunchCount] == 2) { 
     [self showRateUsAlert]; 
    } 
    return YES; 
} 

- (void)showRateUsAlert { 
    // show the Rate Us alert view 
} 

- (NSInteger)plusPlusLaunchCount { 
    static NSString *Key = @"launchCount"; 
    NSInteger count = 1 + [[NSUserDefaults standardUserDefaults] integerForKey:Key]; 
    [[NSUserDefaults standardUserDefaults] setInteger:count forKey:Key]; 
    return count; 
} 
+0

這會在我的appdelegate或只是第一個視圖或? – DiscoveryOV

+0

'application:didFinishLaunchingWithOptions:'是'UIApplicationDelegate'消息。 –

+0

啊,我現在看到,假設我應該看看我的AppDelegate。謝謝。 – DiscoveryOV

0

您需要爲要顯示警報的時間間隔設置NSTimer。當應用程序啓動時啓動計時器,並在設置完成後的時間間隔後顯示警報。

1

爲什麼不使用第三方庫,而不是自己給「評價我們」發出警報?無論如何,這種事情已經做了很多次了。

這是一個非常好的之一:iRate

不完全回答的稱號你的問題。

0

我會建議你使用DidBecomeActive被稱爲每次啓動應用程序時,和來自背景/睡眠模式:

您需要取消的情況下,用戶的計時器不使用的應用程序了這麼久。

- (void)applicationDidBecomeActive:(UIApplication *)application{ 
    // Override point for customization after application launch.  

    rateUsTimer = [[NSTimer scheduledTimerWithTimeInterval:180 
            target:self 
            selector:@selector(showRateUsAlert) 
            userInfo:nil 
            repeats:NO] retain]; 


} 

- (void)applicationWillResignActive:(UIApplication *)application{ 
    [rateUsTimer_ invalidate]; 
    [rateUsTimer_ release]; 
    rateUsTimer = nil; 
} 

- (void)applicationDidEnterBackground:(UIApplication *)application{ 
    [rateUsTimer_ invalidate]; 
    [rateUsTimer_ release]; 
    rateUsTimer = nil; 
} 


- (void)showRateUsAlert { 
    //Here you present alert 
    [rateUsTimer_ release]; 
    rateUsTimer = nil; 
}