“评价/查看此应用”的app store链接

我想把一个“评价/审查这个应用程序”function到我的应用程序。

有没有办法直接链接到app store的屏幕上,他们在那里审查应用程序? 所以客户不必点击主应用程序链接。 谢谢。

编辑:由于缺乏反应,开始赏金。 只是为了确保它是清晰的:我知道我可以链接到我的应用程序在商店的页面,并要求用户点击从那里到“审查这个应用程序”的屏幕。 问题是,是否有可能直接链接到“审查这个应用程序”屏幕,所以他们不必点击任何东西。

对于低于iOS 7的版本,请使用旧版本:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID 

这在我的工作(Xcode 5 – iOS 7 – 设备 !):

 itms-apps://itunes.apple.com/app/idYOUR_APP_ID 

对于iOS 8或更高版本:

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

代码片段(您可以复制并粘贴):

 #define YOUR_APP_STORE_ID 545174222 //Change this one to your ID static NSString *const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%d"; static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d"; [NSURL URLWithString:[NSString stringWithFormat:([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f)? iOS7AppStoreURLFormat: iOSAppStoreURLFormat, YOUR_APP_STORE_ID]]; // Would contain the right link 

上面所写的一切都是正确的。 只是一个插入到应用程序中的示例,并将{YOUR APP ID}更改为从iTunesconnect获取的实际应用程序ID以显示“评论”页面。 请注意,正如上面所说,它不是在模拟器上工作 – 只是设备。
– 由于ios 7更改而更正。

 NSString * appId = @"{YOUR APP ID}"; NSString * theUrl = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software",appId]; if ([[UIDevice currentDevice].systemVersion integerValue] > 6) theUrl = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@",appId]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:theUrl]]; 

以上所有方法都是正确的,但是现在使用SKStoreProductViewController可以带来更好的用户体验。 要使用它,您需要执行以下操作:

  • 在您的应用程序委托中实现SKStoreProductViewControllerDelegate协议
  • 添加所需的productViewControllerDidFinish方法:

     - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController { [viewController dismissViewControllerAnimated: YES completion: nil]; } 
  • 检查SKStoreProductViewController类是否可用,并显示它或切换到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]]; } 

更新:

Swift 4.0,Xcode 9.0.1

在Real Device iOS 11.x上testing(保证工作)

 let appID = "Your App ID on App Store" let urlStr = "itms-apps://itunes.apple.com/app/id\(appID)" // (Option 1) Open App Page let urlStr = "itms-apps://itunes.apple.com/app/viewContentsUserReviews?id=\(appID)" // (Option 2) Open App Review Tab UIApplication.shared.openURL(NSURL(string: urlStr)!) 

Swift 2版本

 func jumpToAppStore(appId: String) { let url = "itms-apps://itunes.apple.com/app/id\(appId)" UIApplication.sharedApplication().openURL(NSURL(string: url)!) } 

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

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

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

或者

ITMS-应用://itunes.apple.com/app/viewContentsUserReviews ID =的AppID

编辑:iOS 11解决scheme

这是我原来的答案(见下文)的解决scheme。 使用iOS 11时,以下链接格式将起作用:

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

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

iOS 11更新:

似乎没有其他解决scheme中提供的解决scheme直接转到iOS 11上的“评论页面”。

最有可能的问题是,iOS 11 App Store应用程序中的应用程序页面不再有“审阅”选项卡。 相反,评论现在位于描述和截图的正下方。 当然,直接访问这一部分仍然是可能的(例如,使用某种锚点),但是这似乎并不是苹果支持 /打算的。

使用以下链接之一不再工作。 他们仍然把用户带到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页面很可能不是你想要的。

不参考Review页面但是App页面的链接仍然有效,例如

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

所以,你仍然可以让用户访问你的app store页面,但不能直接到评论部分了。 用户现在必须手动向下滚动到审阅部分才能留下他们的反馈。

毫无疑问,这是一个“用户体验的巨大而令人敬畏的好处”,它将帮助开发人员吸引用户留下高质量的评论而不恼人。 做得好的苹果…

在iOS7中,将您的应用程序切换到App Store进行评分和查看的URL已更改:

 itms-apps://itunes.apple.com/app/idAPP_ID 

APP_ID需要用您的应用程序IDreplace。

对于iOS 6及更高版本,以前答案中的url正常工作。

来源: Appirater

享受编码..!

使用这个url是我的完美解决scheme。 它将用户直接带到“ Write a Review section 。 感谢@Joseph Duffy。 一定要试

URL = itms-apps://itunes.apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8YOUR_APP_ID_HEREreplace为您的AppId

对于示例代码尝试这一点:

Swift 3,Xcode 8.2.1:

  let openAppStoreForRating = "itms-apps://itunes.apple.com/gb/app/id1136613532?action=write-review&mt=8" if UIApplication.shared.canOpenURL(URL(string: openAppStoreForRating)!) { UIApplication.shared.openURL(URL(string: openAppStoreForRating)!) } else { showAlert(title: "Cannot open AppStore",message: "Please select our app from the AppStore and write a review for us. Thanks!!") } 

这里showAlert是一个UIAlertController的自定义函数。

iOS 11的解决scheme

短的应用程序商店URL不能正确打开新的iOS 11应用程序商店中的“写评论”界面。 例如,这不起作用:

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

要么

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

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

这成功地打开了iOS 11 App Store中的“写评论”界面。

编辑:正如下面@Theo提到的,国家代码不需要被本地化,并且如果应用名称改变,URL中的应用名称不需要被更新。

希望苹果公司将很快解决这个较短的url。 请参阅rdar:// 34498138

iOS 4已经放弃了“删除率”function。

目前,评估应用程序的唯一方法是通过iTunes。

编辑:链接可以通过iTunes Link Maker生成到您的应用程序。 这个网站有一个教程。

Swift 2版本实际上将您带到iOS 8和iOS 9上的应用程序的评论页面:

 let appId = "YOUR_APP_ID" let url = "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=\(appId)" UIApplication.sharedApplication().openURL(NSURL(string: url)!) 
 NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 

对于> = iOS8 :(简化@ EliBud的答案)。

 #define APP_STORE_ID 1108885113 - (void)rateApp{ static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d"; NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:iOSAppStoreURLFormat, APP_STORE_ID]]; if ([[UIApplication sharedApplication] canOpenURL:appStoreURL]) { [[UIApplication sharedApplication] openURL:appStoreURL]; } } 

我在iOS 10中遇到同样的问题,我可以打开iTunes费率部分:

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=7

基本上它把最后一个URL变成了“mt = 7”

干杯

通过SKStoreProductViewController链接到AppStore中的任何应用程序

通过SKStoreProductViewController在app store链接到您的应用很容易。 但是我挣扎了一点,所以我决定在这里展示整个过程和一些必要的代码。 这种技术还可以确保始终使用正确的商店(对本地化应用程序很重要)。

要使用您的应用程序在您的应用程序中展示应用程序商店的任何应用程序的产品屏幕,请执行以下步骤:

  1. 将StoreFit.framework 添加项目设置中 (目标,构build阶段 – >与库链接二进制文件
  2. 将StoreKit导入ViewController类
  3. 使你的ViewController符合这个协议SKStoreProductViewControllerDelegate
  4. 创build方法以显示所需产品屏幕的StoreView
  5. closures StoreView

但最重要的是:由于某种原因,这种模拟器无法正常工作,您必须在具有互联网连接的实际设备上进行构build和安装。

  1. 将StorKit.framework添加到您的项目中: 在你的项目设置中找到这个

SWIFT 4:这是根据前面描述的步骤的代码:

  // ---------------------------------------------------------------------------------------- // 2. Import StoreKit into the ViewController class // ---------------------------------------------------------------------------------------- import StoreKit // ... // within your ViewController // ---------------------------------------------------------------------------------------- // 4. Create the method to present the StoreView with the product screen you want // ---------------------------------------------------------------------------------------- func showStore() { // Define parameter for product (here with ID-Number) let parameter : Dictionary<String, Any> = [SKStoreProductParameterITunesItemIdentifier : NSNumber(value: 742562928)] // Create a SKStoreProduktViewController instance let storeViewController : SKStoreProductViewController = SKStoreProductViewController() // set Delegate storeViewController.delegate = self // load product storeViewController.loadProduct(withParameters: parameter) { (success, error) in if success == true { // show storeController self.present(storeViewController, animated: true, completion: nil) } else { print("NO SUCCESS LOADING PRODUCT SCREEN") print("Error ? : \(error?.localizedDescription)") } } } // ... // ---------------------------------------------------------------------------------------- // 3. Make your ViewController conforming the protocol SKStoreProductViewControllerDelegate // ---------------------------------------------------------------------------------------- extension ViewController : SKStoreProductViewControllerDelegate { // ---------------------------------------------------------------------------------------- // 5. Dismiss the StoreView // ---------------------------------------------------------------------------------------- func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) { print("RECEIVED a FINISH-Message from SKStoreProduktViewController") viewController.dismiss(animated: true, completion: nil) } } 

这是我在我的应用程序中使用的代码;

 -(void)rateApp { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://itunes.apple.com/app/" stringByAppendingString: @"id547101139"]]]; } 

接受的答案未能加载“评论”标签。 我发现下面的方法来加载“审查”选项卡没有“详细信息”选项卡。

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id={APP_ID}&pageNumber=0&sortOrdering=2&mt=8"]]; 

{APP_ID}replace为您的app store应用ID。

SWIFT 3

 fileprivate func openAppStore() { let appId = "YOUR_APP_ID" let url_string = "itms-apps://itunes.apple.com/app/id\(appId)" if let url = URL(string: url_string) { UIApplication.shared.openURL(url) } } 

从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: linkmaker.itunes.apple.com并追加&action=write-review ,似乎是最安全的方法。

从苹果开发者文件报价

另外,您可以继续在应用程序的设置或configuration屏幕中包含一个永久链接,该链接与您的App Store产品页面进行深层链接。 要自动打开用户可以在App Store中撰写评论的页面,请将查询参数action = write-review附加到您的产品URL。

所以这个URL会是这样的:

itms-apps://itunes.apple.com/app/id YOUR_APP_ID ?action = write-review

 let rateUrl = "itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review" if(UIApplication.shared.canOpenURL(rateUrl)) { UIApplication.shared.openURL(rateUrl) } 

从iOS 10.3开始:

 import StoreKit func someFunction() { SKStoreReviewController.requestReview() } 

但它刚刚发布了10.3,所以如上所述,您仍然需要一些老版本的回退方法

iOS 11+ (新的app store)中有一个新的方法来做到这一点。 您可以直接打开“撰写评论”对话框。

iOS 11例子:

 itms-apps://itunes.apple.com/us/app/id1137397744?action=write-review 

要么

 https://itunes.apple.com/us/app/id1137397744?action=write-review 

笔记:

  • 国家代码是必需的 ( /us/ )。 它可以是任何国家代码,无所谓。
  • 将应用程序ID( 1137397744 )更改为您的应用程序ID(从iTunes URL获取)。
  • 如果你想支持较老的iOS版本(前11),你将需要一些条件逻辑,只有当操作系统版本大于或等于11时才以这种方式链接。