有两种方式可以实现该功能:
方式一:跳转APP Store 应用详情,进行评分
if (@available(iOS 11.0, *)) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/cn/app/Apple ID ?mt=8&action=write-review"]];
}else{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=Apple ID &pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8"]];
}
将下面的Apple ID 替换为你自己应用的Apple ID即可。如果你不知道Apple ID 在哪里查看,我可以告诉你:登录你的开发者账户,在下图中的位置
![](https://img.haomeiwen.com/i6562341/7634f81502459ac1.png)
方式二:弹出ViewController 展示应用详情
1、导入评分库,#import <StoreKit/StoreKit.h>
2、实现该代理:SKStoreProductViewControllerDelegate
3、在需要调用评分的地方调用如下方法:
[self openAppWithIdentifier:@"Apple ID"];
4、实现代理方法:
#pragma mark - SKStoreProductViewControllerDelegate
/**
* 按取消按钮Cancel返回所调用代理方法,此处返回到ViewController控制器
*/
-(void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController{
//在代理方法里dismiss这个评分的VC
[viewController dismissViewControllerAnimated:YES completion:nil];
}
-(void)openAppWithIdentifier:(NSString *) appId{
SKStoreProductViewController * storeProductVC = [[SKStoreProductViewController alloc] init];
//然后设置代理,注意这很重要,不然弹出就没法dismiss了
storeProductVC.delegate = self;
NSDictionary * dict = [NSDictionary dictionaryWithObject:appId forKey:SKStoreProductParameterITunesItemIdentifier];
//接着弹出VC
[self presentViewController:storeProductVC animated:YES completion:nil];
//最后加载应用数据
[storeProductVC loadProductWithParameters:dict completionBlock:^(BOOL result, NSError *error) {
}];
}
网友评论