簡介:
iOS應(yīng)用內(nèi)部實(shí)現(xiàn)App Store評分功能,筆著整理總結(jié)有三種方式,各位可根據(jù)自己需求自己選擇。先介紹下評分功能實(shí)現(xiàn)的三種方式。
1,通用方式通過App內(nèi)部打開網(wǎng)頁形式,跳轉(zhuǎn)到AppStore編輯評論,可評分,可評論。
優(yōu)點(diǎn):方便,快捷,不受系統(tǒng)版本限制,目前最常用的方式。
缺點(diǎn):內(nèi)部網(wǎng)頁形式加載緩慢,等待時(shí)間長,加載失敗概率大。
2,iOS 6.0以后 在app內(nèi)部加載AppStore 展示app信息
優(yōu)點(diǎn):展示速度比方法三塊快
缺點(diǎn):不能直接跳轉(zhuǎn)到評論編輯頁面,需要手動點(diǎn)擊評論+編輯評論
3,iOS 10.0.3 新增應(yīng)用內(nèi)評分功能,調(diào)用系統(tǒng)方法評分。
優(yōu)點(diǎn):無須跳轉(zhuǎn),應(yīng)用內(nèi)系統(tǒng)彈框,方便快速。
缺點(diǎn):只能評分,且一年只能使用三次彈框。
開發(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展示頁面后,需要手動點(diǎn)擊 評論→ 撰寫評論
*/
- (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:^{
}];
}