Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Opening up App Store to Rate from within my App

I was wondering if it is possible to take my user directly to the review section of my app on the app store from within my app?

I don't want this to open in Safari, I want it to directly open the App Store app on the device and take them to the review page.

I have tried the following;

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=437688779&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software"]];

However, clicking that seems to open up the iTunes app and not app store and then just gives an error saying "Cannot Connect to the store. A secure connection could not be established".

Any ideas?

like image 227
Paul Morris Avatar asked Sep 21 '11 11:09

Paul Morris


People also ask

How do users rate my app?

Users can rate your app on a scale of 1 to 5 stars. They can also add a written review for iOS and macOS apps. Individual ratings inform your app’s summary rating, which is displayed on your product page and in search results.

How do App ratings work on the App Store?

Ratings Users can rate your app on a scale of one to five stars. Individual ratings inform your app’s summary rating, which is displayed on your product page and in search results. This summary rating is specific to each territory on the App Store and you can reset it when you release a new version of your app.

How do I respond to a review on the App Store?

Responding to Reviews on the App Store. Addressing feedback directly on your App Store product page can help you create a better user experience and improve your app’s rating. You can respond to all reviews of your app, regardless of when they were written, in App Store Connect.

How do I give users feedback on the App Store?

To give users an easy way to provide feedback on the App Store or the Mac App Store, use the SKStoreReviewController API. You can prompt for ratings up to three times in a 365-day period. Users will submit a rating through the standardized prompt, and can write and submit a review without leaving the app.


2 Answers

There seems to be an issue worth mentioning in iOS 7.0 as described here. You can see how Appirator dealt with the problem in their source here.

Basically, you need to handle 7.0 users differently, as so: (the first line is the same as the accepted solution, the appended strings are just on the same line.)

NSString *str = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=yourAppIDHere";
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
    str = @"itms-apps://itunes.apple.com/app/idyourAppIDHere";
}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

Update 19 August 2015

The URLs above don't work for iOS 8.0. Updated code catering for all iOS versions would be:

NSString *str;
float ver = [[[UIDevice currentDevice] systemVersion] floatValue];
if (ver >= 7.0 && ver < 7.1) {
    str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@",appID];
} else if (ver >= 8.0) {
    str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software",appID];
} else {
    str = [NSString stringWithFormat:@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",appID];
}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

Source: Appirator


Update 14 November 2017

From iOS 10.3, we can request a review using the SKStoreReviewController, which actually opens a neat little popover in your app rather than navigating away from your app:

if (@available(iOS 10.3, *)) {
  [SKStoreReviewController requestReview];
  return;
}
like image 76
Craig Grummitt Avatar answered Sep 23 '22 01:09

Craig Grummitt


As seen in this blog:

- (IBAction)gotoReviews:(id)sender
{
    NSString *str = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa";
    str = [NSString stringWithFormat:@"%@/wa/viewContentsUserReviews?", str]; 
    str = [NSString stringWithFormat:@"%@type=Purple+Software&id=", str];

    // Here is the app id from itunesconnect
    str = [NSString stringWithFormat:@"%@yourAppIDHere", str]; 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
}
like image 29
Youssef Avatar answered Sep 24 '22 01:09

Youssef