2011-06-04 5 views
12

Comment pouvons-nous faire le "s'il vous plaît nous laisser un avis dans l'App Store" PopUp fonctionnelle dans une application iOS?App Store Review Bouton

+0

Sans rapport avec Xcode. –

Répondre

38

C'est assez facile. Créez une action rateGame et remplacez l'ID 409954448 par l'ID de votre application.

- (IBAction)rateGame { 
    [[UIApplication sharedApplication] 
    openURL:[NSURL URLWithString:@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=409954448"]];   
} 

Cela lancera l'application AppStore et prendre l'utilisateur directement à la page où il/elle peut évaluer et revoir votre application. Si vous voulez que cela se produise après, disons, 20 fois l'utilisateur charge votre application, vous pouvez ajouter une alerte à viewDidLoad de votre page principale:

- (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];     
    } 

} 

Cela suppose que vous avez mis en place le launchCount dans le 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 

} 
+3

+1 mais sans tous les casquettes s'il vous plaît. :) –

+0

@WTP, je pense qu'il semble plus lisible pour les titres de bouton, mais n'hésitez pas à le retouner si vous le souhaitez. Cela ne me dérange pas les éditions, surtout celles qui s'améliorent. – PengOne

+0

+1, mais vous avez sûrement besoin de modifier le nom du développeur dans votre méthode rateGame? Et peut-être le code du pays aussi? (Je me demandais juste) – Luke

2

Eh bien, here's one.

Ces traitements sont généralement comme UIAlertViews simples avec trois boutons (Review maintenant, plus tard, jamais) avec des préférences stockées dans NSUserDefaults pour indiquer si l'utilisateur a déjà fait, si elles ne souhaite jamais être demandé à nouveau, etc

2

iRate est également une autre bonne bibliothèque pour présenter "évaluer cette application" boîtes de dialogue.

+0

iRate est une mauvaise idée car elle n'est pas localisable. –

+0

Ok, merci à tous, je vais essayer tout ce week-end! :) –

+0

Fait avec AppiRater, fonctionne comme un charme, très simple aussi! Merci à tous! :)) –

4

Il manque du code si vous souhaitez que l'utilisateur révise votre application après 20 utilisations. La partie manquante est

- (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"]]; 

    } 
}