Files
knowledge-kit/Chapter1 - iOS/1.34.md
2020-02-25 17:46:51 +08:00

2.6 KiB
Raw Blame History

App 评分

经常有这样的需求-引导用户在合适的时机对 App 做出好评。本文就尝试谈一谈这一块的一些知识

  1. 评分的方式 可以跳出应用对 App 进行评分,也可以在应用内进行评分(>= iOS 10.3)。

  2. 跳出 App 评分 利用系统方法打开 URL跳到 App store 后跳转到自己 App 的评价页面)

NSString *urlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?action=write-review", @"你的App ID"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
  1. 应用内评分 iOS 10.3 之后系统为我们评分这个需求引入 StoreKit。利用它,我们可以很方便地在应用内对 App 进行快速评分,而不用跳出去。
  • 在 App 内部打开 App store并跳转到App 评价页面
#import <StoreKit/StoreKit.h>
SKStoreProductViewController *storeVC = [[SKStoreProductViewController alloc] init];
storeVC.delegate = self;
[storeVC loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:@"1401834682"} completionBlock:^(BOOL result, NSError * _Nullable error) {
   if (error) {
     
   }else{
       [self presentViewController:storeVC animated:YES completion:nil];
   }
}];
  • 在 App 内弹出评分对话框,用户星级评分后可以继续输入文字
if (@available(iOS 10.3, *)) {
    if([SKStoreReviewController respondsToSelector:@selector(requestReview)]){
        [SKStoreReviewController requestReview];
    else{
         NSString *urlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?action=write-review", @"你的App ID"];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
   }
}else {
    // Fallback on earlier versions
    NSString *urlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?action=write-review", @"你的App ID"];
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];             
}
  1. 注意时机哦 我们的目的是能得到用户的正反馈如果在用户刚使用APP时就弹出评分框可能会给某些用户带来反感因此选择一个合适的时机弹出评分很重要不然适得其反。 今天在使用爱奇艺的时候发现他们的弹出场景是这样的。我因为要出门所以下载了一部电影。在会员模式下高速缓存成功后(我很满意)弹出评分按钮。 爱奇艺评分