iOS 跳转到App Store下载或评论(内评论)

//跳转到app在AppStore页面
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@", kPopolookAppleId]]];

//跳转到评分
        NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",kPopolookAppleId];
        NSURL * url = [NSURL URLWithString:str];
//        [[UIApplication sharedApplication] openURL:url];

//内置AppStore无需跳转打开AppStore
      需要导入#import <StoreKit/StoreKit.h>

    实现代理 SKStoreProductViewControllerDelegate

  //初始化控制器
        SKStoreProductViewController * storeProductVC = [[SKStoreProductViewController alloc] init];
        //设置代理
        storeProductVC.delegate = self;
        //加载新的视图
        [storeProductVC loadProductWithParameters:@{SKStoreProductParameterProviderToken : kPopolookAppleId} completionBlock:^(BOOL result, NSError * _Nullable error) {
            //block回调
            if (error) {
                NSLog(@"-=-=-=-=-=-=-=-==-=-==%@", error.userInfo);
            }else {
                //模态出AppStore
                [self presentViewController:storeProductVC animated:YES completion:nil];
            }
        }];

//代理方法 - 操作完成后调用

- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
    [self dismissViewControllerAnimated:YES completion:nil];
}

//三种类型。需要与iTunes合作
//
//SKStoreProductParameterITunesItemIdentifier是希望展示App的AppID,该Key所关联的值是一个NSNumber类型。支持iOS6以后的系统版本。
//
//SKStoreProductParameterAffiliateToken是附属令牌,该Key所关联的值是NSString类型。例如在iBook中app的ID,是iOS8中新添加的,支持iOS8以后的系统版本。
//
//SKStoreProductParameterCampaignToken是混合令牌,该Key所关联的值是一个40byte的NSString类型,使用这个令牌,你能看到点击和销售的数据报告。支持iOS8以后的系统版本。
//SKStoreProductParameterProviderToken      该Key所关联的值是NSString类型  分析提供者令牌(NSString) 8.3
//SKStoreProductParameterAdvertisingPartnerToken        该Key所关联的值是NSString类型  广告合作伙伴令牌(NSString) 9.3

在iOS10.3+后可以实现在APP内进行评论


而API使用方法也很简单,在需要弹出评分框的地方添加以下代码即可:

#import <StoreKit/StoreKit.h>
...
...
[SKStoreReviewController requestReview];

由于此API只支持iOS10.3+,因此应该先做版本判断,iOS10.3以下还是跳转到Appstore中进行评分,即将上面代码改为:

支持deep link调用。在app 链接地址后面拼上action=write-review。

if([SKStoreReviewController respondsToSelector:@selector(requestReview)]){ [SKStoreReviewController requestReview]; }else{ NSString * nsStringToOpen = [NSString stringWithFormat: @"itms-apps://itunes.apple.com/app/id%@?action=write-review",@"1041804461"];//替换为对应的APPID [[UIApplication sharedApplication] openURL:[NSURL URLWithString:nsStringToOpen]]; }
原文地址:https://www.cnblogs.com/yujidewu/p/5798646.html