簡介:
iOS應(yīng)用內(nèi)部實現(xiàn)App Store評分功能服球,筆著整理總結(jié)有三種方式撞芍,各位可根據(jù)自己需求自己選擇。先介紹下評分功能實現(xiàn)的三種方式翩瓜。
1,通用方式通過App內(nèi)部打開網(wǎng)頁形式携龟,跳轉(zhuǎn)到AppStore編輯評論兔跌,可評分,可評論峡蟋。
優(yōu)點:方便坟桅,快捷,不受系統(tǒng)版本限制蕊蝗,目前最常用的方式仅乓。
缺點:內(nèi)部網(wǎng)頁形式加載緩慢,等待時間長蓬戚,加載失敗概率大夸楣。
2,iOS 6.0以后 在app內(nèi)部加載AppStore 展示app信息
優(yōu)點:展示速度比方法三塊快
缺點:不能直接跳轉(zhuǎn)到評論編輯頁面子漩,需要手動點擊評論+編輯評論
3豫喧,iOS 10.0.3 新增應(yīng)用內(nèi)評分功能,調(diào)用系統(tǒng)方法評分幢泼。
優(yōu)點:無須跳轉(zhuǎn)紧显,應(yīng)用內(nèi)系統(tǒng)彈框,方便快速缕棵。
缺點:只能評分孵班,且一年只能使用三次彈框。
開發(fā)步驟:
導(dǎo)入頭文件 #import <StoreKit/StoreKit.h>
1招驴,iOS 10.0.3以后調(diào)用系統(tǒng)彈框評分
IMG_2068.PNG
/**
* 只能評分篙程,不能編寫評論
* 有次數(shù)限制,一年只能使用三次
* 使用次數(shù)超限后别厘,需要跳轉(zhuǎn)appstore
*/
- (IBAction)systemComentBtnAction:(UIButton *)sender {
if([SKStoreReviewController respondsToSelector:@selector(requestReview)]) {// iOS 10.3 以上支持
//防止鍵盤遮擋
[[UIApplication sharedApplication].keyWindow endEditing:YES];
[SKStoreReviewController requestReview];
}
}
2房午,跳轉(zhuǎn)到AppStore對應(yīng)應(yīng)用評論頁面
IMG_2070.PNG
/**
* 可評分評論,無次數(shù)限制
*/
- (IBAction)appStoreComentBtnAction:(UIButton *)sender {
NSString * nsStringToOpen = [NSString stringWithFormat: @"itms-apps://itunes.apple.com/app/id%@?action=write-review",@"AppID"];//替換為對應(yīng)的APPID
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:nsStringToOpen]];
}
3,iOS 6.0以后的方法丹允,內(nèi)部加載AppStore
IMG_2071.PNG
IMG_2071.PNG
注:需簽署代理 <SKStoreProductViewControllerDelegate>
/**
* 在APP內(nèi)部加載App Store 展示APP信息郭厌,但不能直接跳轉(zhuǎn)到評論編輯頁面。
* 再加載處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 {
//模態(tài)彈出appstore
[self presentViewController:storeProductViewContorller animated:YES completion:^{
}];
}
}];
}
// 代理方法
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[self dismissViewControllerAnimated:YES completion:^{
}];
}