27
2017
09

ios10.3app内好评SKStoreReviewController以及其他方式好评

App Store评分方式

1. 通过openURL直接打开App Store

无版本限制,可以直接跳转到评论界面。在评分页面,可以评分和评价,评论更有价值。缺点是跳转到App Store,需要登录,用户的操作场景的转换,会造成部分用户使用的困扰,可能需要花费较长的等待时间,甚至加载失败等,造成评价数量少。

2. 模态展示APP详情页

iOS6+,应用内present一个控制器,展示的是APP详情界面。但不能直接跳转到评论编辑页面。再加载处App Store展示页面后,需要手动点击 评论→ 撰写评论,多两步操作,部分用户可能存在操作障碍(找不到)。

3. APP内弹窗SKStoreReviewController

iOS10.3推出的新形式,APP内直接评分,简单直接,但是不能写评论。APP内评分调用API [SKStoreReviewController requestReview]; (目前唯一),应用会自动弹窗请求用户评分,弹窗不可定制,对处理过程和处理结果无法监控。只能使用该 API 请求评分,不能请求评价和反馈。一个应用内每年最多使用 3 次弹窗,滥用弹窗,会引起不少用户的反感,甚至因此给应用差评。

具体实现

1. 通过openURL直接打开App Store

+ (void)openRatingViewInAppStore {
    NSString *appStoreReviewStr = @"itms-apps://itunes.apple.com/cn/app/jj%E6%96%97%E5%9C%B0%E4%B8%BB/id472885640?action=write-review"; if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { appStoreReviewStr = @"itms-apps://itunes.apple.com/cn/app/jj%E6%96%97%E5%9C%B0%E4%B8%BBhd-%E6%8D%95%E9%B1%BC%E9%BA%BB%E5%B0%86%E6%A3%8B%E7%89%8C%E5%90%88%E9%9B%86/id508667882?action=write-review";
    }
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:appStoreReviewStr]];
}

appStoreReviewStr是你的APP在App Store上的地址,这个地址的查看方法请参考
怎么找到苹果App Store的应用程序下载链接地址
这里得注意字符串尾部的“action=write-review”,只有有了这个才直接跳转到评论界面,否则只是进入APP详情界面。

2. 模态展示APP详情页

  • 引入头文件
#import <StoreKit/StoreKit.h>
  • 遵循代理
SKStoreProductViewControllerDelegate
  • 方法实现
- (void)showAppStoreReView
{
    SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];
    storeProductViewContorller.delegate = self;
    [storeProductViewContorller loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier : [PlistReader valueForKeyInConfig:@"APP_ID"]} completionBlock:^(BOOL result, NSError *error) {
         if(error) {

         } else {
           [self presentViewController:storeProductViewContorller animated:YES completion:^{
             }];
         }
     }];
}
  • 实现代理
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
    [self dismissViewControllerAnimated:YES completion:^{
    }];
}

3. APP内弹窗SKStoreReviewController

  • 引入头文件
#import <StoreKit/StoreKit.h>
  • 方法实现
+ (void)openRatingViewInApp {
    NSString *version = [UIDevice currentDevice].systemVersion;
    if (version.doubleValue >= 10.3) {
        [SKStoreReviewController requestReview];
    }
}

总结

以上是对三种APP评价方式进行的分析对比,以及简要的使用方法。如果要深入了解,或者遇到什么深坑,建议阅读对应官方文档。
不足之处欢迎匡正!

上一篇:Code : delegate,event,lambda 下一篇:Android使用UIL加载圆角图片不显示的问题及解决办法