IOS 应用内评分

有两种方式可以实现该功能:
方式一:跳转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 在哪里查看,我可以告诉你:登录你的开发者账户,在下图中的位置


Apple ID 查看

方式二:弹出ViewController 展示应用详情

1、导入评分库,#import 
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) {
    }];
}

你可能感兴趣的:(IOS 应用内评分)