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


    }

  • 相关阅读:
    OC基础--常用类的初步介绍与简单使用之NSDate
    mysql创建自定义函数与存储过程
    Hibernate Session 获取connection
    mysql中isnull,ifnull,nullif的用法
    mysql数据库中某项其中一个值在该项排第几,百分几
    linux下的ImageMagick安装方法
    Java 判断操作系统类型(适用于各种操作系统)
    tesseract 字体训练资料篇
    structDemo1
    C语言中.h和.c文件解析(很精彩)
  • 原文地址:https://www.cnblogs.com/weiboyuan/p/3968319.html
Copyright © 2020-2023  润新知