可以在应用程序启动后的某个特定时机弹出提示框询问用户是否愿意对应用进行评价。具体实现可以通过NSUserDefaults来保存应用程序启动的次数,并在启动时读取判断是否达到某个特定启动次数,达到后弹出评价提示框。
以下为示例代码:
// 应用启动时保存启动次数
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 判断是否是第一次启动
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) {
// 第一次启动,设置初始值为1
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"LaunchTimes"];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
[[NSUserDefaults standardUserDefaults] synchronize];
} else {
// 不是第一次启动,启动次数加1
NSInteger launchTimes = [[NSUserDefaults standardUserDefaults] integerForKey:@"LaunchTimes"] + 1;
[[NSUserDefaults standardUserDefaults] setInteger:launchTimes forKey:@"LaunchTimes"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
// 其他启动相关代码
}
// 在合适的时机弹出评价提示框
- (void)showRateViewIfNeeded {
NSInteger launchTimes = [[NSUserDefaults standardUserDefaults] integerForKey:@"LaunchTimes"];
if (launchTimes >= 10) { // 在第10次启动时弹出提示框
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"评价" message:@"您能否花费几秒钟留下对我们应用的评价" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"评价" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
// 打开评价页面
NSString *appID = @"YOUR_APP_ID";
NSString *urlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?action=write-review", appID];
NSURL *url = [NSURL URLWithString:urlString];
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
}];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:okAction];
[alertController addAction:cancelAction];
[self.window.rootViewController presentViewController:alertController animated:YES completion:nil];
}
}
在需要弹出评价提示框的地方,调用 showRateViewIfNeeded
方法即可。