先來說一下之前的去App Store打分評價的做法
- 使用連接跳轉到App Store打分評價
NSString *iTunesLink = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=(app對應的App Store中的ID)&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
//解釋一下相應的參數
//onlyLatestVersion:true 只針對最新的版本
//pageNumber:0 第一頁顯示的品論
//sortOrdering(0:默認進入的是APP詳情 1:直接進入評論 3:直接進入相關)
- iOS6之后有了StoreKit可以在內部直接打開App Store(這種方法無法直接跳轉到評價的item)進入的是默認的APP詳情
1.創建一個SKStoreProductViewController
2.調用loadProductWithParameters:completionBlock:方法將APP對應的AppStoreID 參數傳進去
3.實現代理方法 就可以跳AppStore
SKStoreProductViewController *productStore = [[SKStoreProductViewController alloc] init];
productStore.delegate = self;
[productStore loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier : @"991552878"} completionBlock:^(BOOL result, NSError * _Nullable error) {
if (result) {
[self presentViewController:productStore animated:YES completion:^{
}];
}
else {
NSLog(@"error:%@, result:%d", error, result);
}
}];
//代理方法
#pragma mark - SKStoreProductViewControllerDelegate
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[self dismissViewControllerAnimated:YES completion:^{
}];
}
- iOS10.3之后,又增加了一個打分方法,僅僅是可以用來打分,無法評價,使用起來也非常的方便直接調用類方法接口即可
[SKStoreReviewController requestReview];//一行代碼搞定
效果圖(在APP內部進行App Store打分)
appstore 打分.png
我是這樣使用的
//評分
- (void)loadAppStoreController {
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.3) {
[SKStoreReviewController requestReview];
} else {
SKStoreProductViewController *productStore = [[SKStoreProductViewController alloc] init];
productStore.delegate = self;
[productStore loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier : @"991****78"} completionBlock:^(BOOL result, NSError * _Nullable error) {
if (result) {
[self presentViewController:productStore animated:YES completion:^{
}];
}
else {
DLog(@"error:%@, result:%d", error, result);
}
}];
}
}