zoukankan      html  css  js  c++  java
  • 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];


    }

  • 相关阅读:
    【问题记录】IIS配置项
    Dapr可观测性
    es6 set方法使用
    js 数据类型
    获取到select下的所有option的文字和值
    使用js的webrtc进行sip协议连接,实现webrtc与电话网打通
    Qt (QGis) 中动态布局例子
    Latex中使注脚首行不缩进,且新行与首行对齐
    [转] 控制域的更新方式_小强office
    访问被屏蔽的FTP网站
  • 原文地址:https://www.cnblogs.com/weiboyuan/p/3968319.html
Copyright © 2011-2022 走看看