(一) 跳转APP Store的方式,在APP Store应用内进行评分
实现方式:
以[[UIApplicationsharedApplication] openURL:url的方式去评分
iOS 7.0 以后 的url :@"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%APPID&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8"
iOS 11之后可以直接跳转到评分编辑页面]
url:@"https://itunes.apple.com/us/app/twitter/idAPPID?mt=8&action=write-review"
NSString *str = [NSStringstringWithFormat:
@"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8",你的APPID]; //appID 解释如下
if ([[[UIDevicecurrentDevice] systemVersion]intValue]>=11) {
str = [NSStringstringWithFormat:
@"https://itunes.apple.com/us/app/twitter/id%@?mt=8&action=write-review",你的APPID];
}
NSURL *url = [NSURLURLWithString:str];
if ([[UIApplicationsharedApplication] canOpenURL:url])//判断当前环境是否可以打开此url
{
[[UIApplicationsharedApplication] openURL:url];
}
(二) iOS 6+可以支持应用内评分
在APP内部加载App Store 展示APP信息页面,但不能直接跳转到评论编辑页面。在加载处App Store展示页面后,需要用户去点击评论→撰写评论,多两步操作,部分用户可能存在操作障碍
实现方式:
1.引入 StoreKit库
import
2.在使用的的类遵循SKStoreProductViewControllerDelegate协议
3.实现去评分跳转方法,在要跳转的地方直接调用即可
- (void)showAppStoreReView
{
SKStoreProductViewController*storeProductViewContorller = [[SKStoreProductViewControlleralloc] init];
storeProductViewContorller.delegate = self;
//加载App Store视图展示
[storeProductViewContorller loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:@(1133379943)}completionBlock:^(BOOL result,NSError *error) {
if (result) {
[selfpresentViewController:storeProductViewContorlleranimated:YEScompletion:^{
}];
}else{
NSLog(@"错误:%@" ,error);
}
}];
}
//4、实现代理回调方法
-(void)productViewControllerDidFinish:(SKStoreProductViewController*)viewController {
[selfdismissViewControllerAnimated:YEScompletion:^{
}];
}
这样就OK啦。
(三) iOS 10.3以后可以支持应用内弹框评分
此种方式会有以下问题
1、官方文当说评价的框受App Store管理,所以may or may not弹出评价框,不建议用按钮之类的主动弹出来,
2、把框弹出来之后,只能评价星星,不能填写文字评价
3、网上说弹出次数是一年最多三次, 系统明确说了,不要用按钮之类的主动调用(并不是每次调用就会出来
实现方式
1.引入 StoreKit库
import
2.实现跳转方法
-
(void)showAppStoreReView{
//仅支持iOS10.3+(需要做校验)且每个APP内每年最多弹出3次评分alart
if([SKStoreReviewControllerrespondsToSelector:@selector(requestReview)]){
//防止键盘遮挡
[[UIApplicationsharedApplication].keyWindowendEditing:YES];
[SKStoreReviewControllerrequestReview];//调用弹框
} else {
// 不论iOS 版本均可使用APP内部打开网页形式,跳转到App Store 直接编辑评论
NSString *urlString= NSString *str =[NSStringstringWithFormat:@"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8",你的APPID];
if ([[UIApplicationsharedApplication] canOpenURL: urlString])//判断当前环境是否可以打开此url
{
[[UIApplicationsharedApplication] openURL: urlString];
}
}
}