-
跳转
App Store
的评论页进行评分static NSString * const wAPPID = @"itunes里的appid"; void wb_itunesWriteReview() { NSString *urlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?action=write-review", wAPPID]; wb_applicationOpenURL(urlString); }
-
应用内弹框
提醒五星好评,不能撰写评论,一年
只允许弹出3次
,iOS10.3+
系统支持;#import <StoreKit/StoreKit.h>
void wb_displayAppReview(UIViewController *viewController) { UIAlertController * alertController = [UIAlertController alertControllerWithTitle:@"喜欢APP吗?\n给个五星好评吧,亲!" message:nil preferredStyle:UIAlertControllerStyleAlert]; /// 跳转APPStore中应用的撰写评价页面 UIAlertAction *review = [UIAlertAction actionWithTitle:@"我要吐槽" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { wb_itunesWriteReview(); }]; UIAlertAction *noReview = [UIAlertAction actionWithTitle:@"用用再说" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [alertController removeFromParentViewController]; }]; [alertController addAction:review]; [alertController addAction:noReview]; /// 是否添加五星好评入口 if (@available(iOS 10.3, *)) { if ([SKStoreReviewController respondsToSelector:@selector(requestReview)]) { UIAlertAction *fiveStar = [UIAlertAction actionWithTitle:@"五星好评" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [[UIApplication sharedApplication].keyWindow endEditing:YES]; [SKStoreReviewController requestReview]; }]; [alertController addAction:fiveStar]; } } dispatch_async(dispatch_get_main_queue(), ^{ [viewController presentViewController:alertController animated:YES completion:^{ }]; }); }
效果图.png
五星好评.png
撰写评论.jpg
- APP内部打开页面跳转到评分,
不能直接打开评分页面
#import <StoreKit/StoreKit.h>
实现代理SKStoreProductViewControllerDelegate
SKStoreProductViewController *storeProductViewController = [[SKStoreProductViewController alloc] init];
storeProductViewController.delegate = self;
[storeProductViewController loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier : wAPPID} completionBlock:^(BOOL result, NSError * _Nullable error) {
if (!error) {
[self presentViewController:storeProductViewController animated:YES completion:nil];
}
}];
#pragma mark -- SKStoreProductViewControllerDelegate
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[viewController dismissViewControllerAnimated:YES completion:nil];
}
application open URL method
+ (void)wb_applicationOpenURL:(NSURL *)url {
dispatch_async(dispatch_get_main_queue(), ^{
BOOL canOpen = [[UIApplication sharedApplication] canOpenURL:url];
if (canOpen) {
if (@available(iOS 10.0, *)) {
NSDictionary *options = @{};
[[UIApplication sharedApplication] openURL:url options:options completionHandler:^(BOOL success) {}];
}
else {
[[UIApplication sharedApplication] openURL:url];
};
}
});
}