SKStoreProductViewController类是UIViewController的子类, 如果你对view controller比较熟悉的话,那SKStoreProductViewController使用起来也非常简单了。当你希望向用户展示App Store中产品时,你需要:

1.实例化一个SKStoreProductViewController类
2.设置它的delegate
3.把sotre product视图控制器显示给消费者

剩下的就交给操作系统来处理了。需要记住一点的是SKStoreProductViewController只能以模态的方式显示。SKStoreProductViewControllerDelegate协议定义了一个单独的方法—productViewControllerDidFinish:,当消费者离开App Store时会调用这个方法—一般是通过点击左上角画面中的取消按钮。通过给代理发送productViewControllerDidFinish:消息,操作系统就会把控制权返回到你的程序。当然你不能忘了 只支持IOS6.0及其以上~~

步骤:

1.添加 storeKit.framework

2.头文件里 加上

#import <StoreKit/StoreKit.h>

@interface ViewController : UIViewController<SKStoreProductViewControllerDelegate>

3.直接在m中实现

- (IBAction)doAction:(UIButton *)sender {
      [self showAppInApp:@"xxxxxx"];//此处xxxxx需要替换为需要的appID
}
- (void)showAppInApp:(NSString *)_appId {
  Class isAllow = NSClassFromString(@"SKStoreProductViewController");
  if (isAllow != nil) {
    SKStoreProductViewController *sKStoreProductViewController = [[SKStoreProductViewController alloc] init];
    sKStoreProductViewController.delegate = self;
    [sKStoreProductViewController loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier: _appId}
                      completionBlock:^(BOOL result, NSError *error) {
                        if (result) {
                          [self presentViewController:_SKSVC
                                             animated:YES
                                           completion:nil];
                        }
                        else{
                          NSLog(@"%@",error);
                        }
                      }];
  }
  else{
    //低于iOS6没有这个类
    NSString *string = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/id%@?mt=8",_appId];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]];
  }
}

#pragma mark - SKStoreProductViewControllerDelegate

//对视图消失的处理
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {

[viewController dismissViewControllerAnimated:YES
                                     completion:nil];

}

转载于:https://www.cnblogs.com/weiboyuan/p/3968319.html

iOS 应用内跳转到appstore里下载相关推荐

  1. ios应用内跳转到appstore里评分

    在ios6.0前跳转到appstore评分一般是直接跳转到appstore评分 NSString *evaluateString = [NSString stringWithFormat:@" ...

  2. uni-app应用内跳转至app-store

    uni-app在ios端从app应用内跳转到app-store let appleId=12345678 //app的appleId plus.runtime.launchApplication({a ...

  3. 微信公众号,点击按钮打开pdf文件流,安卓跳转到浏览器里下载,ios可预览但默认不能下载

    微信公众号,点击按钮打开pdf文件流,安卓跳转到浏览器里下载,ios可预览但默认不能下载 注:在pc上开始时采用这两种方式是没有效果的,或者打开的是空页面,但上线到公众号是没有问题的!!!!!!!!! ...

  4. IOS应用内跳转到系统设置

    iOS应用内跳转到系统设置 设置跳转有三种方式,每一种的使用场景都不同. 并且你跳转到系统中自己应用下面设置的时候,你的应用要提前至少申请了某一个权限,如(通讯录,通知,定位等).否则,会引起崩溃. ...

  5. 扫描二维码,判断是Android还是iOS,并跳转到不同的下载地址

    扫描二维码,判断是Android还是iOS,并跳转到不同的下载地址 问题概要 解决思路 页面代码 问题概要 一般情况下,我们开发App,有Android和iOS版本,为了方便用户,我们只能有一个二维码 ...

  6. iOS 应用内跳转到百度地图、苹果地图、谷歌地图、高德地图等

    最近在做导航,所以把自己找到的资料总结一下! 无论是百度地图.高德地图.谷歌地图还是腾讯地图它们都有自己的SDK,我们只需要在自己的工程中导入SDK并查看相应的官方文档,基本上就可以实现导航.但是这样 ...

  7. iOS应用内跳转系统设置相关界面的方法

    在iOS开发中,有时会有跳转系统设置界面的需求,例如提示用户打开蓝牙或者WIFI,提醒用户打开推送或者位置权限等.在iOS6之后,第三方应用需要跳转系统设置界面,需要在URL type中添加一个pre ...

  8. iOS应用内跳转到手机淘宝天猫

    info.plist 中需要添加(实测没填写的话不会去判断是否安装了此APP) 代码如下: 需要跳转的按钮点击事件:func copyStrKey(_ sender: UIButton) {let p ...

  9. ios 应用内跳转微信

    平常我们做iOS开发,会经常遇到打开其他的APP的功能.本篇文章讲的就是打开别人的APP的一些知识.我们的目标是: 打开别人的APP 让别人打开我们的APP iOS9的适配问题 使用URL Schem ...

最新文章

  1. ORA-00020:maximum number of processes (150) exceeded 错误解决方法
  2. 深入分析Java Web技术内幕 修订版 pdf
  3. 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法
  4. 专注SilverLight
  5. Jquery实现搜索框提示功能
  6. matlab语言与应用 10 数学问题的非传统解法
  7. Matlab fftshift 详解
  8. 删除或复制文件提示:文件名无效或太长/目标路径太长/找不到该项目
  9. Microsoft Project——Project基本使用教程
  10. Cordova插件之跳转第三方app
  11. 字美杯装饮料茶点打印机
  12. tensorflow聊天机器人python实现_用 TensorFlow 做个聊天机器人
  13. 如何修改vant组件中filed的placeholder的 颜色
  14. [BZOJ4784][UOJ290][ZJOI017]仙人掌-树形DP
  15. ORACLE之SQL——排序
  16. 明日之后系统互通的服务器,明日之后安卓苹果互通么?安卓苹果混服/能联机吗问题介绍[图]...
  17. 7-3 找零钱***分数 20作者 李祥单位 湖北经济学院
  18. 全国十大加班城市排行榜加班最疯狂的城市
  19. Nodejs之解决接口跨域问题
  20. MySQL-条件查询

热门文章

  1. java concurrent 例子_[Java Concurrent] 并发访问共享资源的简单案例
  2. mysql中预定义常量_PHP预定义常量
  3. linux redis客户端_为什么单线程Redis能那么快?
  4. Duilib编辑框Edit输入完自动跳到下一个编辑框
  5. 什么是ACID理论(二阶段、三阶段提交、TCC)
  6. __eq___C ++'and_eq'关键字和示例
  7. java 批量处理 示例_Java中异常处理的示例
  8. Java LocalDate类| 带示例的getDayOfYear()方法
  9. kotlin中判断字符串_Kotlin程序查找字符串中字符的频率
  10. 合页损失,铰链损失_多点铰链损失功能 使用Python的线性代数