zoukankan      html  css  js  c++  java
  • IOS6.0 应用内直接下载程序 不需跳转AppStore -b

    闲来没事看了篇文章 应用内创建应用商店环境,不跳转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及其以上~~

    步骤:

    1.添加 storeKit.framework

    2.头文件里 加上  

    #import 

    @interface ViewController : UIViewController<</span>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];


    }

  • 相关阅读:
    【渗透攻防Web篇】SQL注入攻击高级
    【在线渗透】中关村--德宇
    [深入学习Web安全](5)详解MySQL注射
    【安全播报】微信突然变静音要谨慎,多人银行卡内余额被转走
    安全圈玩起了直播,"学霸”带你玩转CTF
    2016 安全圈玩起了直播,“学霸”带你玩转CTF_i春秋学院
    对症下药 – 疑难杂症之提权技术
    木马编程-手把手带你进入木马的世界之木马编程
    【LeetCode-面试算法经典-Java实现】【033-Search in Rotated Sorted Array(在旋转数组中搜索)】
    升级后开机就提示“android.process.acore”停止执行 --分析 解决方式
  • 原文地址:https://www.cnblogs.com/isItOk/p/5563833.html
Copyright © 2011-2022 走看看