不跳转AppStore. 原来是IOS6.0就有的新的特性,这和程序自动更新跳转应用商店是一个作用。不同的是,这个可以在应用内部直接打开,不需要挑转到应用商店,当完成操作以后,就可以直接返回到本应用当前操作的界面。用法如下:
SKStoreProductViewController类是UIViewController的子类, 如果你对view controller比较熟悉的话,那SKStoreProductViewController使用起来也非常简单了。当你希望向用户展示App Store中产品时,你需要:
1.实例化一个SKStoreProductViewController类
2.设置它的delegate
3.把sotre product视图控制器显示给消费者
剩下的就交给操作系统来处理了。需要记住一点的是SKStoreProductViewController只能以模态的方式显示。SKStoreProductViewControllerDelegate协议定义了一个单独的方法—productViewControllerDidFinish:,当消费者离开App Store时会调用这个方法—一般是通过点击左上角画面中的取消按钮。通过给代理发送productViewControllerDidFinish:消息,操作系统就会把控制权返回到你的程序。当然你不能忘了 只支持IOS6.0及其以上~~
代码如下:
//
// ViewController.m
// 消费者demo
//
// Created by mac on 2018/8/9.
// Copyright © 2018年 com.zkr. All rights reserved.
//
#import "ViewController.h"
#import
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event{ SKStoreProductViewController *skstore = [[SKStoreProductViewController alloc] init];
skstore.delegate=self;
[self presentViewController:skstore animated:YES completion:nil];
//最后加载应用数据(一定要记住这个数据要在视图出现以后去加载)
[skstore loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:@(自己程序的ID)} completionBlock:^(BOOL result, NSError * _Nullable error) {
if(error) {
//handle the error
}
}];
//present
}
//注意一定要有代理方法,不然,当你返回
- (void)productViewControllerDidFinish:(SKStoreProductViewController*)viewController {
[viewController dismissViewControllerAnimated:YES
completion:nil];
}
如果对你有用,记得点赞和关注啊!
网友评论