个人感觉Recommendations and Reviews
做的主要事情就是App Store功能的补全.毕竟和安卓比起来.下个应用得去App Store
手动搜索、下载安装.这样比较麻烦(当然我不是说安卓那种应用内点击就能直接下载的一定就好).不知道大家看没看过应用墙类
(主要靠推荐别人App为运作模式)的App.在iOS11以下的时候,他们只能在应用内点击.然后跳转App Store.下载之后会不会回退到应用墙App就不太清楚了.而且为了下一个App得跑到另外一个App.体验上总感觉怪怪的.
到了iOS11就不同了.我们可以通过StoreKit来直接在应用内打开对应的App下载.前提条件是我们需要有对应的ID.
如何获取AppID我在这篇文章里面讲过了:检测版本更新.这次我们来讲一些拓展功能吧.
应用内跳转至App Store推荐
App的页面
<SKStoreProductViewControllerDelegate>
- (void)action:(id)sender {
SKStoreProductViewController *vc = [[SKStoreProductViewController alloc] init];
vc.delegate = self;
/// 这里用QQ来举个例子
[vc loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier: @"444934666"} completionBlock:^(BOOL result, NSError * _Nullable error) {
if (error) {
NSLog(@"error:%@" ,error);
}
}];
[self presentViewController:vc animated:YES completion:^{
}];
}
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController __TVOS_PROHIBITED NS_AVAILABLE_IOS(6_0) {
[viewController dismissViewControllerAnimated:YES completion:nil];
}
productViewControllerDidFinish
这个代理方法必须实现.不然点击左上角的完成/亦或者是下载完成后不能dismiss
.
对于这个parameters.一共有以下6种
// iTunes Store item identifier (NSNumber) of the product
SK_EXTERN NSString * const SKStoreProductParameterITunesItemIdentifier NS_AVAILABLE_IOS(6_0);
// SKU for the In-App Purchase product (NSString) to render at the top of the product page
SK_EXTERN NSString * const SKStoreProductParameterProductIdentifier NS_AVAILABLE_IOS(11_0);
// iTunes Store affiliate token (NSString)
SK_EXTERN NSString * const SKStoreProductParameterAffiliateToken NS_AVAILABLE_IOS(8_0);
// iTunes Store affiliate campaign token (NSString)
SK_EXTERN NSString * const SKStoreProductParameterCampaignToken NS_AVAILABLE_IOS(8_0);
// Analytics provider token (NSString)
SK_EXTERN NSString * const SKStoreProductParameterProviderToken NS_AVAILABLE_IOS(8_3);
// Advertising partner token (NSString)
SK_EXTERN NSString * const SKStoreProductParameterAdvertisingPartnerToken NS_AVAILABLE_IOS(9_3);
SKAdNetwork
SKAdNetwork是一个不暴露用户隐私的情况下服务于广告主的类.如果要使用SKAdNetwork,需要在使用上面的跳转的情况下在params中多传递下面几个参数
SKStoreProductParameterAdNetworkIdentifier
您在Apple注册的广告网络标识符。
SKStoreProductParameterAdNetworkCampaignIdentifier
您提供的广告系列号。
SKStoreProductParameterAdNetworkNonce
您为每个广告展示提供的唯一值。
SKStoreProductParameterAdNetworkTimestamp
您在广告展示时间附近生成的时间戳。
SKStoreProductParameterAdNetworkAttributionSignature
您基于其他参数生成的加密签名。
广告墙A->B应用.B应用调用[StoreKit registerAppForAdNetworkAttribution]
SKStoreReviewController 应用内评分
不知道大家看过这个页面没,应该看到的比较少吧.没错,苹果只允许开发者一年内调用三次(怪不得同一个App内这个页面出来的次数不会超过三次…).
调用也十分的方便[SKStoreReviewController requestReview];
拓展
检测版本更新这里教了大家如何跳转AppStore.我们可以在后面带个参数,直达对应App的评论页面https://itunes.apple.com/app/idXXXXXXXXXX?action=write-review
参数的key为action
值为write-review
.