我想把一个“率/审查这个应用程序”功能到我的应用程序。

是否存在一种方法能够直接链接到应用商店中他们评论应用的屏幕?所以用户不需要点击主应用程序链接。谢谢。

编辑:由于缺乏回应,开始赏金。为了确保这一点非常清楚:我知道我可以链接到应用商店中我的应用页面,并让用户从那里点击到“审查这款应用”屏幕。问题是是否有可能直接链接到“审查这个应用程序”屏幕,这样他们就不需要点击任何东西。


当前回答

以上方法都是正确的,但是现在使用SKStoreProductViewController可以带来更好的用户体验。要使用它,你需要做以下工作:

implement SKStoreProductViewControllerDelegate protocol in your app delegate add required productViewControllerDidFinish method: - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController { [viewController dismissViewControllerAnimated: YES completion: nil]; } Check if SKStoreProductViewController class is available and either show it or switch to the App Store: extern NSString* cAppleID; // must be defined somewhere... if ([SKStoreProductViewController class] != nil) { SKStoreProductViewController* skpvc = [[SKStoreProductViewController new] autorelease]; skpvc.delegate = self; NSDictionary* dict = [NSDictionary dictionaryWithObject: cAppleID forKey: SKStoreProductParameterITunesItemIdentifier]; [skpvc loadProductWithParameters: dict completionBlock: nil]; [[self _viewController] presentViewController: skpvc animated: YES completion: nil]; } else { static NSString* const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%@"; static NSString* const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@"; NSString* url = [[NSString alloc] initWithFormat: ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f) ? iOS7AppStoreURLFormat : iOSAppStoreURLFormat, cAppleID]; [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]]; }

其他回答

iOS 11解决方案

在新的iOS 11应用商店中,短的应用商店url无法正确打开“写评论”界面。例如,这是行不通的:

https://itunes.apple.com/app/id333903271?mt=8&action=write-review

解决方法是在URL中包含两个字母的国家代码和应用程序名称,例如:

https://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review

or

itms-apps://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review

你可以从这里获得应用程序的完整URL: https://linkmaker.itunes.apple.com/

这将成功打开iOS 11应用商店中的“写评论”界面。

编辑:正如下面@Theo提到的,如果应用程序名称发生变化,国家代码不需要本地化,URL中的应用程序名称也不需要更新。

希望苹果能尽快解决这个问题。看到rdar: / / 34498138

编辑:iOS 11解决方案

这是我最初答案的解决方案(见下文)。当使用iOS 11时,以下链接格式可以工作:

https://itunes.apple.com/us/app/appName/idAPP_ID?mt=8&action=write-review

只需将APP_ID替换为特定的应用程序ID。使链接起作用的关键是国家代码。上面的链接使用美国代码,但实际上使用哪个代码并不重要。用户将自动被重定向到他的商店。

iOS 11更新:

似乎其他答案中提供的直接进入评论页面的解决方案都不适用于iOS 11。

最可能的问题是,iOS 11应用商店中的应用页面不再有评论标签。相反,评论现在位于描述和截图的正下方。当然,仍然可以直接访问这个部分(例如通过某种锚),但似乎苹果并不支持/不打算这样做。

使用下列链接之一不再工作。它们仍然会将用户带到App Store应用中,但只是一个空白页面:

itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

所有仍在使用这些链接的人都应该尽快更新他们的应用,因为将用户引向空白的App Store页面很可能不是你想要的。

链接不涉及审查页面,但到应用程序页面,仍然工作,然而,例如。

itms-apps://itunes.apple.com/app/idYOUR_APP_ID   (same as above, but without write-review parameter)

所以,你仍然可以让用户进入你的应用商店页面,但不再直接进入评论区。用户现在必须手动向下滚动到评论部分来留下他们的反馈。

毫无疑问,这是“用户体验的一大好处,有助于开发者吸引用户留下高质量的评论,而不会惹恼他们”。苹果干得好……

所有以前的链接不再直接到“评论”标签,

这个链接将直接指向“评论标签”: ​

https://itunes.apple.com/app/viewContentsUserReviews?id=AppID

or ​

itms-apps: / / itunes.apple.com/app/viewContentsUserReviews ? id = AppID

Swift 5在iOS14中测试

打开5颗星的回顾窗口

private func openReviewInAppStore() {
    let rateUrl = "itms-apps://itunes.apple.com/app/idYOURAPPID?action=write-review"
    if UIApplication.shared.canOpenURL(URL.init(string: rateUrl)!) {
        UIApplication.shared.open(URL.init(string: rateUrl)!, options: [:], completionHandler: nil)
    }
}
NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];