iOS应用内部实现App Store评分功能,笔着整理总结有三种方式,各位可根据自己需求自己选择。先介绍下评分功能实现的三种方式。
1,通用方式通过App内部打开网页形式,跳转到AppStore编辑评论,可评分,可评论。
优点:方便,快捷,不受系统版本限制,目前最常用的方式。
缺点:内部网页形式加载缓慢,等待时间长,加载失败概率大。
2,iOS 6.0以后 在app内部加载AppStore 展示app信息
优点:展示速度比方法三块快
缺点:不能直接跳转到评论编辑页面,需要手动点击评论+编辑评论
3,iOS 10.0.3 新增应用内评分功能,调用系统方法评分。
优点:无须跳转,应用内系统弹框,方便快速。
缺点:只能评分,且一年只能使用三次弹框。
开发步骤:
导入头文件 #import
1,iOS 10.0.3以后调用系统弹框评分
1
2
3
4
5
6
7
8
9
10
11
12
|
/**
* 只能评分,不能编写评论
* 有次数限制,一年只能使用三次
* 使用次数超限后,需要跳转appstore
*/
- (IBAction)systemComentBtnAction:(UIButton *)sender {
if ([SKStoreReviewController respondsToSelector:@selector(requestReview)]) { // iOS 10.3 以上支持
//防止键盘遮挡
[[UIApplication sharedApplication].keyWindow endEditing:YES];
[SKStoreReviewController requestReview];
}
}
|
2,跳转到AppStore对应应用评论页面
1
2
3
4
5
6
7
|
/**
* 可评分评论,无次数限制
*/
- (IBAction)appStoreComentBtnAction:(UIButton *)sender {
NSString * nsStringToOpen = [NSString stringWithFormat: @ "itms-apps://itunes.apple.com/app/id%@?action=write-review" ,@ "AppID" ];//替换为对应的APPID
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:nsStringToOpen]];
}
|
3,iOS 6.0以后的方法,内部加载AppStore
注:需签署代理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
/**
* 在APP内部加载App Store 展示APP信息,但不能直接跳转到评论编辑页面。
* 再加载处App Store展示页面后,需要手动点击 评论→ 撰写评论
*/
- (IBAction)webAppStoreBtnAction:(UIButton *)sender {
SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];
storeProductViewContorller.delegate = self;
//加载App Store视图展示
[storeProductViewContorller loadProductWithParameters:
@{SKStoreProductParameterITunesItemIdentifier : @ "APPID" } completionBlock:^(BOOL result, NSError *error) {
if (error) {
} else {
//模态弹出appstore
[self presentViewController:storeProductViewContorller animated:YES completion:^{
}];
}
}];
}
// 代理方法
- ( void )productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[self dismissViewControllerAnimated:YES completion:^{
}];
}
|