如何在应用程序每 3 次启动时显示弹出窗口?
Posted
技术标签:
【中文标题】如何在应用程序每 3 次启动时显示弹出窗口?【英文标题】:how to show popup every 3rd time app has launched? 【发布时间】:2011-07-23 05:11:56 【问题描述】:我需要在我的应用每 3 次启动时显示一个弹出窗口。
我也在使用Appirater
来评价我的应用程序。如果我在其中添加代码来完成我的任务可以吗?
还是有任何其他方式可以确认我的应用每 3 次启动一次?
【问题讨论】:
【参考方案1】:您可以在此处将应用启动计数存储在 NSUserDefault 中,并且可以在应用启动时每三次显示警报。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
if(![[[NSUserDefaults standardUserDefaults] valueForKey:@"firstTime"] isEqualToString:@"Yes"])
[[NSUserDefaults standardUserDefaults] setValue:@"Yes" forKey:@"firstTime"];
[[NSUserDefaults standardUserDefaults] setInteger:([[NSUserDefaults standardUserDefaults] integerForKey:@"ApplaunchCount"] + 1) forKey:@"ApplaunchCount"];
[[NSUserDefaults standardUserDefaults] synchronize];
else
[[NSUserDefaults standardUserDefaults] setInteger:([[NSUserDefaults standardUserDefaults] integerForKey:@"ApplaunchCount"] + 1) forKey:@"ApplaunchCount"];
[[NSUserDefaults standardUserDefaults] synchronize];
if([[NSUserDefaults standardUserDefaults] integerForKey:@"ApplaunchCount"] % 3 ==0)
UIAlertView *lanuchAlert = [[UIAlertView alloc] initWithTitle:@"Your Message Title" message:@"Your Message Text" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
[lanuchAlert show];
[lanuchAlert release];
// Add the tab bar controller's current view as a subview of the window
[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];
return YES;
如果您需要更多帮助,请告诉我。
【讨论】:
它工作正常。但我如何在第三次显示后重置它? 您只想第三次展示。我以为你想每 3 次展示一次。在这里,您可以在第一次收到警报时将其设置为另一个 UserDefaulut 并将其设置为 TRUE,如果下次为 TRUE,则无需显示警报。如果有任何问题,请告诉我。 我没有注意到%3==0
每 3 次都可以使用。您的代码运行良好。谢谢【参考方案2】:
您可以在“Appirater.h”中调整LAUNCHES_UNTIL_PROMPT
。或者你可以使用 userDefaults。
【讨论】:
我试过了,但它造成了很多混乱,所以我想不要编辑它并尝试其他东西 那么userDefaults就是你要找的。span> 【参考方案3】:我不知道 Appirater,但您可以使用 NSUserDefaults 和一个简单的逻辑来实现这一点。将 NSNumber 值设置为用户默认值,并在每次应用加载时递增。最初,当您尝试使用密钥访问它时,该数字将为 nil。如果它是 nil,则将 1 设置为值,并在每次应用加载时递增。如果数字变为 3,则显示弹出窗口并将数字重置为 0。
【讨论】:
以上是关于如何在应用程序每 3 次启动时显示弹出窗口?的主要内容,如果未能解决你的问题,请参考以下文章