• iOS 应用内跳转到appstore里下载


    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];


    }

  • 相关阅读:
    多线程中thread和runnable
    安装hive 个人遇到的问题小问题
    Linux 简单命令学习记录
    shell脚本简单学习教训经验
    @AutoWired使用
    <jsp:directive.page>标签
    Hibernate session.saveOrUpdate()方法
    无法连接远程mysql问题
    svn版本控制
    Hql中占位符(转)
  • 原文地址:https://www.cnblogs.com/weiboyuan/p/3968319.html
Copyright © 2020-2023  润新知