iOS中在APP內加入AppStore評分功能
阿新 • • 發佈:2019-02-05
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:^{
}];
}