iOS應用內部實現App Store評分功能,筆着整理總結有三種方式,各位可根據自己需求自己選擇。先介紹下評分功能實現的三種方式。
1,通用方式通過App內部打開網頁形式,跳轉到AppStore編輯評論,可評分,可評論。
優點:方便,快捷,不受系統版本限制,目前最常用的方式。
缺點:內部網頁形式加載緩慢,等待時間長,加載失敗概率大。
2,iOS 6.0以後 在app內部加載AppStore 展示app信息
優點:展示速度比方法三塊快
缺點:不能直接跳轉到評論編輯頁面,需要手動點擊評論+編輯評論
3,iOS 10.0.3 新增應用內評分功能,調用系統方法評分。
優點:無須跳轉,應用內系統彈框,方便快速。
缺點:只能評分,且一年只能使用三次彈框。
開發步驟:
導入頭文件 #import
1,iOS 10.0.3以後調用系統彈框評分
/**
* 只能評分,不能編寫評論
* 有次數限制,一年只能使用三次
* 使用次數超限後,需要跳轉appstore
*/
- (IBAction)systemComentBtnAction:(UIButton *)sender {
if([SKStoreReviewController respondsToSelector:@selector(requestReview)]) {// iOS 10.3 以上支持
//防止鍵盤遮擋
[[UIApplication sharedApplication].keyWindow endEditing:YES];
[SKStoreReviewController requestReview];
}
}
2,跳轉到AppStore對應應用評論頁面
/**
* 可評分評論,無次數限制
*/
- (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
注:需簽署代理
/**
* 在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:^{
}];
}