How can we make the "please leave us a review in开发者_开发问答 the app store" functional PopUp in an iOS app?
It's quite easy. Create an action rateGame
and change the id 409954448
to your app id.
- (IBAction)rateGame {
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=409954448"]];
}
This will launch the AppStore app and take the user directly to the page where s/he can rate and review your app. If you want this to happen after, say, 20 times the user loads your app, then you can add an alert in viewDidLoad
of your main page:
- (void)viewDidLoad {
[super viewDidLoad];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSInteger launchCount = [prefs integerForKey:@"launchCount"];
if (launchCount == 20) {
launchCount++;
[prefs setInteger:launchCount forKey:@"launchCount"];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"LIKE MY APP?"
message:@"Please rate it on the App Store!"
delegate:self
cancelButtonTitle:@"NO THANKS"
otherButtonTitles:@"RATE NOW", nil];
[alert show];
[alert release];
}
}
This assumes you've set up the launchCount in the AppDelegate:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSInteger launchCount = [prefs integerForKey:@"launchCount"];
launchCount++;
[prefs setInteger:launchCount forKey:@"launchCount"];
// YOUR CODE HERE
}
I personally used this one. I think it works really well. http://arashpayan.com/blog/2009/09/07/presenting-appirater/
There is code missing if you want user to review your app after 20 times. The missing part is
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
// user hit dismiss so don't do anything
}
else if (buttonIndex == 1) //review the app
{
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=409954448"]];
}
}
Well, here's one.
These are usually done as simple UIAlertViews with three buttons (Review Now, Later, Never) with preferences stored in NSUserDefaults to indicate whether the user has already done so, whether they never wish to be asked again, etc.
iRate is also another good library to present "rate this app" dialog boxes.
Since iOS 10.3 iOS provides a feature for this.
import StoreKit
SKStoreReviewController.requestReview()
A complete class how to request Appstore Reviews can be found on my GitHubAccount.
Cheers!
精彩评论