46 votes

SKStore Review Controller, comment l’utiliser correctement?

J'ai vu certains de réponse, mais pas satisfait avec eux et d'acquérir de l'idée, mais ne savent pas comment l'utiliser correctement, de sorte qu'il s'exécute de manière appropriée, même si je pense qu'il devrait être utilisé en Application des délégués didFinishLaunching, mais je voulais être sûr avant de le mettre en œuvre dans l'app Live sans aucune agitation. SKStore​Review​Controller est seulement de travailler pour ios 10.3 ce que j'ai lu, quelqu'un pourrait-il expliquer avec un peu de code rapide et objective-c.

Mise à JOUR:

En fait, je suis confus au sujet de l'appel de la méthode request​Review(), Où dois-je appeler cette méthode? en rootViewControllers' viewDidLoad ou appDelegates' didFinishlaunching ?

Merci.

78voto

korat prashant Points 344

SKStoreReviewController est disponible dans iOS 10.3 et versions ultérieures.

Selon APPLE de Documents:

Vous pouvez demander aux utilisateurs de taux ou de revoir votre application alors qu'elles l'utilisent, sans les envoyer dans l'App Store.Vous déterminez les points de la expérience de l'utilisateur à qui il est logique d'appeler l'API et le système prend en charge le reste.

Afin de la fréquence d'affichage/d'Examen de l'intérieur de l'application, vous devez ajouter StoreKit- cadre.

Veuillez trouver un Exemple de code pour les deux langues:

Objectif C:

#import <StoreKit/StoreKit.h>

- (void)DisplayReviewController {
    if([SKStoreReviewController class]){
       [SKStoreReviewController requestReview] ;
    }
}

depuis xCode 9 que vous pouvez faire:

#import <StoreKit/StoreKit.h>

- (void)DisplayReviewController {
    if (@available(iOS 10.3, *)) {
        [SKStoreReviewController requestReview];
    }
}

Swift:

import StoreKit

func DisplayReviewController {
    if #available( iOS 10.3,*){
        SKStoreReviewController.requestReview()
    }
}

Mise à jour: Demander un cote seulement après que l'utilisateur a démontré l'engagement avec votre application

9voto

Emre Gürses Points 438

Pour Objective-C,

1-) Ajouté StoreKit cadre de Lien Binaire Avec la Bibliothèque enter image description here

2-) Ajouté cadre

#import <StoreKit/StoreKit.h>

3-) Ajouté au-dessous de code où vous voulez l'appeler App-Revue pop-up. Dans ce cas, j'ai ajouté dans le viewDidLoad.

  - (void)viewDidLoad {
        [super viewDidLoad];
        [SKStoreReviewController requestReview];
    }

4 -), Vous devez être conscient de ci-dessous expliquent d'Apple, Lorsque vous testez en mode debug

Lorsque vous appelez cette méthode pendant que votre application est toujours en mode de développement, une évaluation/examen de la demande d'avis est toujours affichée afin que vous puissiez tester l'interface utilisateur et l'expérience. Cependant, cette méthode n'a aucun effet lorsque vous l'appelez dans une application que vous pouvez distribuer à l'aide de TestFlight.

7voto

Shakti Points 486

Je pense que la possibilité d'appeler directement les ci-dessous n'est pas une bonne idée

SKStoreReviewController.requestReview()

Il peut être fait comme à chaque fois que l'utilisateur ouvrir votre application de multiples de 10(10,20,30,...100), alors vous pouvez montrer à des fins d'examen

alors tout d'abord, vous devez créer un fichier qui va être responsable de tout, comme l'enregistrement de votre application, ouvrez le comte en userdefaults ,récupération de l'application, ouvrez le comte et montrant requestReview() veuillez jeter un oeil à l'extrait de code suivant

   import Foundation
   import StoreKit
   class  SpsRateManager {


private static let instance = SpsRateManager()

var shareinstance: SpsRateManager{
    return .instance
}
static func incrementAppOpenedCount() { // called from appdelegate didfinishLaunchingWithOptions:
    let userdefault = UserDefaults.standard


    let savedvalue = userdefault.integer(forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
    if savedvalue == 0 {
        print("Not saved ")
          userdefault.set(1, forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
    }
    else{
        userdefault.set(savedvalue+1, forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)

    }

}

static func checkAppopencountandProvideReview(){
    let userdefault = UserDefaults.standard


    let appopencountvalue  = userdefault.integer(forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
    if appopencountvalue % 10 == 0 {
        print("its been 10 times so ask for review ")
        SpsRateManager().requestReview()
    }
    else{
        print("not enough open count dont show ")
    }

}




fileprivate func requestReview() {
    if #available(iOS 10.3, *) {
        SKStoreReviewController.requestReview()
    } else {
        // Fallback on earlier versions
        // Try any other 3rd party or manual method here.
    }
}

}

4voto

Jordan Points 1085

Ajoutant la grande réponse de korat ci-dessus ...

Si vous prenez en charge une application Objective-C héritée et que vous souhaitez appeler DisplayReviewController après l'ouverture de quelques applications, procédez comme suit:

Dans votre classe AppDelegate.m, ajoutez ceci:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  int count = [[NSUserDefaults standardUserDefaults] integerForKey:@"LaunchCount"];
  if(count < 0) count = 0;
  [[NSUserDefaults standardUserDefaults] setInteger:count+1 forKey:@"LaunchCount"];
}

//The application was in background and become active
- (void)applicationWillEnterForeground:(UIApplication *)application {
  int count = [[NSUserDefaults standardUserDefaults] integerForKey:@"LaunchCount"];
  if(count < 0) count = 0;
  [[NSUserDefaults standardUserDefaults] setInteger:count+1 forKey:@"LaunchCount"];
}
 

et dans le contrôleur, vous voulez appeler la fonction:

 - (void)applicationDidBecomeActive {

  if ([[NSUserDefaults standardUserDefaults] integerForKey:@"LaunchCount"] == 5) {
     [self DisplayReviewController];
  }
}
 

2voto

Je pense que vous pouvez implémenter une méthode pour compter quand ils exécutent l'application et la stocker dans UserDefaults, puis appeler requestReview () si le nombre est 5 ou 10 ou quelque chose comme ça (cela dépend de vous), de cette façon vous avez plus chance d'obtenir une bonne critique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X