我想把一个“率/审查这个应用程序”功能到我的应用程序。
是否存在一种方法能够直接链接到应用商店中他们评论应用的屏幕?所以用户不需要点击主应用程序链接。谢谢。
编辑:由于缺乏回应,开始赏金。为了确保这一点非常清楚:我知道我可以链接到应用商店中我的应用页面,并让用户从那里点击到“审查这款应用”屏幕。问题是是否有可能直接链接到“审查这个应用程序”屏幕,这样他们就不需要点击任何东西。
我想把一个“率/审查这个应用程序”功能到我的应用程序。
是否存在一种方法能够直接链接到应用商店中他们评论应用的屏幕?所以用户不需要点击主应用程序链接。谢谢。
编辑:由于缺乏回应,开始赏金。为了确保这一点非常清楚:我知道我可以链接到应用商店中我的应用页面,并让用户从那里点击到“审查这款应用”屏幕。问题是是否有可能直接链接到“审查这个应用程序”屏幕,这样他们就不需要点击任何东西。
当前回答
以上方法都是正确的,但是现在使用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时,以下链接格式可以工作:
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)
所以,你仍然可以让用户进入你的应用商店页面,但不再直接进入评论区。用户现在必须手动向下滚动到评论部分来留下他们的反馈。
毫无疑问,这是“用户体验的一大好处,有助于开发者吸引用户留下高质量的评论,而不会惹恼他们”。苹果干得好……
更新:
Swift 5.1, Xcode 11
在Real Device iOS 13.0上测试(保证正常工作)
import StoreKit
func rateApp() {
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
} else {
let appID = "Your App ID on App Store"
let urlStr = "https://itunes.apple.com/app/id\(appID)" // (Option 1) Open App Page
let urlStr = "https://itunes.apple.com/app/id\(appID)?action=write-review" // (Option 2) Open App Review Page
guard let url = URL(string: urlStr), UIApplication.shared.canOpenURL(url) else { return }
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url) // openURL(_:) is deprecated from iOS 10.
}
}
}
NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
iOS 4抛弃了“删除速率”功能。
目前,对应用进行评级的唯一方式是通过iTunes。
编辑:链接可以通过iTunes Link Maker生成到你的应用。这个网站有一个教程。
从iOS 10.3开始,你可以将action=write-review查询项附加到https://itunes.apple.com/…和https://appsto.re/..。url。在iOS 10.3及以上版本,它会自动打开Write a review,而在较低的iOS版本中,它会回到应用程序的app Store页面。
iOS 11更新: 使用苹果的链接生成器:linkmaker.itunes.apple.com 而追加&action=write-review,似乎是最安全的方法。