您的位置:首页 > 移动开发

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

2016-08-23 11:39 501 查看
//跳转到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]];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: