应用商店链接“评价/评论此应用”

时间:2010-06-26 13:49:30

标签: iphone app-store

我想在我的应用中添加“评价/评论此应用”功能。

有没有办法直接链接到他们审核应用的应用商店中的屏幕?因此,客户无需点击主应用程序链接。感谢。

编辑:由于缺乏回应而开始对此表示赏金。只是为了确保它非常清晰:我知道我可以链接到商店中我的应用程序页面,并要求用户从那里点击“查看此应用程序”屏幕。问题是,是否可以直接链接到“查看此应用程序”屏幕,这样他们就不必点击任何内容。

27 个答案:

答案 0 :(得分:337)

For versions lower than iOS 7 use the old one:

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

This works on my end (Xcode 5 - iOS 7 - Device!):

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

For iOS 8 or later:

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

答案 1 :(得分:43)

<强>更新

Swift 4.0,Xcode 9.1

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

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


if let url = URL(string: urlStr), UIApplication.shared.canOpenURL(url) {
    if #available(iOS 10.0, *) {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    } else {
        UIApplication.shared.openURL(url)
    }
}

从iOS 10中弃用openURL(_ :)。

答案 2 :(得分:38)

上面写的所有内容都是正确的。只需插入应用程序并将{您的应用程序ID}更改为实际应用程序ID的示例,从iTunesconnect获取以显示“审阅”页面。请注意,正如上面评论的那样,它不能在模拟器上工作 - 只是设备 - 由于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]];

答案 3 :(得分:32)

编辑:iOS 11解决方案

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

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

只需将APP_ID替换为您的特定应用ID即可。使链接有效的关键是国家/地区代码。上面的链接使用us代码,但实际上使用哪个代码并不重要。用户将自动被重定向到他的商店。

iOS 11更新:

似乎在其他答案中提供的任何解决方案都没有直接进入评论页面,因此在iOS 11上运行。

最有可能的问题是,iOS 11 App Store应用中的应用页面 NOT 不再有“评论”标签。相反,评论现在位于说明和屏幕截图的正下方。当然,仍然可以直接到达这个部分(例如使用某种锚),但似乎Apple 不支持 /意图。

使用以下链接之一不再起作用。他们仍然将用户带到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)

因此,您仍然可以让用户访问您的应用商店页面,但不能直接访问评论部分。用户现在必须手动向下滚动到审阅部分以留下他们的反馈。

毫无疑问,这为用户体验带来了巨大而可怕的好处,并将帮助开发人员吸引用户留下高质量的评论而不会让他们烦恼#34;干得好的Apple ......

答案 4 :(得分:25)

以上所有方法都是正确的,但现在使用 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]];
    }
    

答案 5 :(得分:12)

Swift 2 version

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

答案 6 :(得分:12)

iOS 11解决方案

短App Store网址无法在新的iOS 11 App Store中正确打开“撰写评论”界面。例如,这工作:

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

解决方法是在网址中包含两个字母的国家/地区代码和应用名称,例如:

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

您可以从此处获取应用的完整网址:https://linkmaker.itunes.apple.com/

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

修改:@Theo在下面提及,国家/地区代码无需本地化,如果应用名称发生变化,则无需更新网址中的应用名称。

希望Apple能够尽快解决这个问题。见rdar://34498138

答案 7 :(得分:11)

之前的所有链接都不再直接指向“评论”标签,

此链接将直接指向“评论标签”:

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

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

答案 8 :(得分:9)

在iOS7中,将应用程序切换到App Store以进行评分和审核的网址已更改:

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

APP_ID需要用您的应用程序ID替换。

对于iOS 6及更早版本,之前答案中的网址工作正常。

来源:Appirater

享受编码.. !!

答案 9 :(得分:8)

使用此网址对我来说是完美的解决方案。它将用户直接带到Write a Review section。 @Joseph Duffy的积分。 必须尝试

网址= itms-apps://itunes.apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8 YOUR_APP_ID_HERE 替换为 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的自定义函数。

答案 10 :(得分:7)

从iOS 10.3开始,您可以将action=write-review查询项附加到https://itunes.apple.com/...https://appsto.re/...网址。在iOS 10.3及更高版本上,它将自动打开Write a review,而在较低的iOS版本中,它将回退到应用程序的App Store页面。

iOS 11更新: 使用Apple的链接制作工具:linkmaker.itunes.apple.com 并附加&action=write-review,似乎是最安全的方式。

答案 11 :(得分:4)

iOS 11 + (新的应用商店)中有一种新方法可以做到这一点。你可以打开&#34;撰写评论&#34;直接对话。

iOS 11示例:

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

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

注意:

  • A country code is required/us/)。它可以是任何国家/地区代码,并不重要。
  • 将应用ID(1137397744)更改为您的应用ID(从iTunes网址获取)。
  • 如果您想支持较旧的iOS版本(前11版),如果操作系统版本大于或等于11,您会希望某些条件逻辑仅以此方式链接。

答案 12 :(得分:4)

NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

答案 13 :(得分:4)

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)!)

答案 14 :(得分:4)

iOS 4放弃了“删除率”功能。

目前,对应用程序进行评级的唯一方法是通过iTunes。

编辑:可以通过iTunes Link Maker为您的应用程序生成链接。 This site has a tutorial.

答案 15 :(得分:3)

我在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 var更改为“mt = 7”

干杯

答案 16 :(得分:3)

通过SKStoreProductViewController

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

通过SKStoreProductViewController可以轻松链接到应用商店的应用。但是我有点挣扎,所以我决定在这里展示整个过程和一些必要的代码。此技术还可确保始终使用正确的商店(对于本地化应用程序非常重要)。

使用您的任何应用在您的应用中显示应用商店的任何应用的产品屏幕ViewControllers按照以下步骤操作:

  1. 项目设置中添加 StoreFit.framework(目标,构建阶段 - &gt;使用库链接二进制文件
  2. 将StoreKit 导入ViewController类
  3. 使您的ViewController符合此协议 的 SKStoreProductViewControllerDelegate
  4. 使用您想要的产品屏幕
  5. 创建呈现StoreView 的方法
  6. 解散 StoreView
  7. 但最重要的是:这 - 由于某种原因 - 在模拟器中不起作用 - 您必须在具有互联网连接的真实设备上构建和安装。

    1. 将StorKit.framework添加到项目中: Find this in your project settings
    2. 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)
          }
      }
      

答案 17 :(得分:3)

对于&gt; = iOS8 :(简化@ EliBud&#39;答案)。

#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];
    }
}

答案 18 :(得分:2)

引自Apple Developer Documentation

  

此外,您可以继续在其中包含持久链接   您的应用的设置或配置屏幕深层链接到您的   App Store产品页面。自动打开用户的页面   可以在App Store中撰写评论,附加查询参数   action =对您的商品网址进行写评论。

所以URL将如下:

  

ITMS的应用程式://itunes.apple.com/app/id的 YOUR_APP_ID 行动=写入评论

答案 19 :(得分:2)

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

答案 20 :(得分:2)

SWIFT 3

v

答案 21 :(得分:2)

接受的答案未能加载&#34;评论&#34;标签。我找到了以下方法加载&#34;评论&#34;标签没有&#34;细节&#34;标签

[[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}替换为您的应用商店应用商店应用ID。

答案 22 :(得分:2)

以下是我在我的应用中使用的代码;

-(void)rateApp {

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

答案 23 :(得分:1)

这在iOS 9-11上正常工作。

尚未在较早版本上进行测试。

[NSURL URLWithString:@"https://itunes.apple.com/app/idXXXXXXXXXX?action=write-review"];

答案 24 :(得分:1)

您可以在您的网址启动器功能中使用此链接

https://apps.apple.com/app/APP_ID?action=write-review

答案 25 :(得分:0)

如果您的应用已通过Beta测试,但尚未发布,则可以使用应用评论链接,但该应用不会留下评论。

  1. 登录iTunes Connect
  2. 点击My Apps
  3. 点击App Icon您感兴趣的
  4. 确保您在App Store页面上
  5. 转到App Information部分(它会自动将您带到那里)
  6. 该页面底部有一个蓝色链接,上面显示View on App Store。单击它,它将打开一个空白页。复制页面顶部网址栏中的内容,这就是您的应用评论链接。该应用程序上线后即可上线。

enter image description here

答案 26 :(得分:0)

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)
    }
}