Preamble
Ask users if they like the application may lead to rejection of your application. Here is an example: https://twitter.com/pietbrauer/status/791883047373246464
In case the link here dies, excerpt from Apple's answer:
3.2.2 ... your application includes content and features that can manipulate user reviews or charts in the App Store. In particular, your application filters user reviews and directs users who intend to rate your application 4-5 stars to complete the rating on the App Store ...
I personally think that this may be the right tactic if you are really trying to solve the problem of users and still give them the opportunity to leave feedback after that, but the question remains if Apple sees this.
Possible Solution
- Show a popup asking the user if they like / like / etc using the application.
- Try using
[SKStoreReviewController requestReview] to get an overview. - Check if the number of windows has changed, which indicates a pop-up window. The danger here is that it is not 100% more reliable, since some other event can lead to a change in the number of windows.
- If the number of windows remains the same, use deep binding to forward the user to the application store. The docs for
SKStoreReviewController suggest using action=write-review as a request parameter to go directly to the feedback page.
Here is a simple implementation:
// make sure we the current iOS version supports in app reviews if ([SKStoreReviewController class]) { NSUInteger windowCount = [UIApplication sharedApplication].windows.count; [SKStoreReviewController requestReview]; // give the review controller some time to display the popup dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ if (windowCount < [UIApplication sharedApplication].windows.count) { // assume review popup showed instead of some other system alert // for example show "thank you" } else { // open app store to leave review NSURL *reviewUrl = [NSURL URLWithString:@"{your-app-url}?action=write-review"]; [[UIApplication sharedApplication] openURL:reviewUrl]; } }); }
Note. I have not sent this code to the App Store, so this is only theoretical.
source share