App Store评分方式
目前方式(无版本限制)

只能通过APP内部打开网页形式,直接跳转到App Store 编辑评论。在评分页面,可以评分和评价,评论更有价值。缺点是跳转到App Store,用户的操作场景的转换,会造成部分用户使用的困扰,可能需要花费较长的等待时间,甚至加载失败等,造成评价数量少。
iOS6 +

在APP内部加载App Store 展示APP信息,但不能直接跳转到评论编辑页面。再加载处App Store展示页面后,需要手动点击 评论→ 撰写评论,多两步操作,部分用户可能存在操作障碍(找不到)。
iOS10.3 +
APP内评分机制是iOS 10.3 中新添功能。用户可以直接在 App 内进行评分,开发者可以对用户在 App Store 的评论进行回复。
APP内评分调用API [SKStoreReviewController requestReview]; (目前唯一),应用会自动弹窗请求用户评分,弹窗不可定制,对处理过程和处理结果无法监控。只能使用该 API 请求评分,不能请求评价和反馈。
一个应用内每年*多使用 3 次弹窗,滥用弹窗,会引起不少用户的反感,甚至因此给应用差评。
iOS10.3版本以前的评分方式依然可以使用。
评分接入方式
目前接入方式(无版本限制)

1、调用方法

– (void)showAppStoreReView

{
NSString *APPID = [PlistReader valueForKeyInConfig:@”APP_ID”];

NSString *appStoreReviewStr = [NSString stringWithFormat: @”itms-apps://itunes.apple.com/app/id%@?action=write-review”,APPID];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:appStoreReviewStr]];

}

iOS6 +  接入方式
1、引入头文件

#import <StoreKit/StoreKit.h>

2、遵循代理

SKStoreProductViewControllerDelegate

3、调用方法

– (void)showAppStoreReView

{
SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];

storeProductViewContorller.delegate = self;

//加载App Store视图展示

[storeProductViewContorller loadProductWithParameters:

@{SKStoreProductParameterITunesItemIdentifier : [PlistReader valueForKeyInConfig:@”APP_ID”]} completionBlock:^(BOOL result, NSError *error) {
if(error) {
} else {
//模态弹出appstore

[self presentViewController:storeProductViewContorller animated:YES completion:^{
}];

}

}];

}

4、实现代理

– (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[self dismissViewControllerAnimated:YES completion:^{
}];

}

iOS10.3 + 接入方式

1、引入头文件

#import <StoreKit/StoreKit.h>

2、调用方法

– (void)showAppStoreReView

{
//仅支持iOS10.3+(需要做校验) 且每个APP内每年*多弹出3次评分alart

if([SKStoreReviewController respondsToSelector:@selector(requestReview)]) {
//防止键盘遮挡

[[UIApplication sharedApplication].keyWindow endEditing:YES];

[SKStoreReviewController requestReview];

} else {
//不论iOS 版本均可使用APP内部打开网页形式,跳转到App Store 直接编辑评论

NSString *APPID = [PlistReader valueForKeyInConfig:@”APP_ID”];

NSString *nsStringToOpen = [NSString stringWithFormat: @”itms-apps://itunes.apple.com/app/id%@?action=write-review”,APPID];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:nsStringToOpen]];

}

}