IOS6.0 应用内直接下载程序 不需跳转AppStore

翻译 2015年07月10日 14:56:20

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


}

相关文章推荐

不通过AppStore,在iOS设备上直接安装应用程序的原理

通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序。利用这种方式,只要在内网布置一个服务器,测试人员只需要通过测试设备的safari浏览器访问特定的url既可...

不通过AppStore,在iOS设备上直接安装应用程序的原理

通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序。利用这种方式,只要在内网布置一个服务器,测试人员只需要通过测试设备的safari浏览器访问特定的url既可...

如何不通过AppStore,直接安装IOS应用程序

之前做一个h5内嵌Android和Ios的项目,开发初期发布第一个版本时产品经理跟我提出了这样一个需求:不通过AppStore,让苹果测试用户通过网址二维码扫描直接安装IOS应用程序,之前并未做过于是...

IOS企业版app部署到自己服务器,不通过AppStore,在iOS设备上直接安装应用程序

IOS企业版app部署到服务器上说明 正对ios升级得ios7 以后,plist文件必须放到 https得服务器上了,http不可以用了。 解决方式: 找一个第三方https外链...

ios开发之 获取APP版本号/跳转APPStore(下载页/评论页)

让我们回到项目设置页面,区分一下 代码如下,一般都是写在AppDelegate //版本号CFBundleShortVersionString不可改NSString*shotVersion =...

ios上跳转app的方法,跳转到appstore等系统应用的方法

每个应用都有自己的url scheme,About — prefs:root=General&path 例如微信,可以写 weixin:// 进行跳转NSURL *url = [NSURL URLW...

程序内下载App,不用跳转到AppStore

提示:需要iOS6.0以上才可以 SKStoreProductViewController类是UIViewController的子类, 如果你对view controller比较熟悉的话...

ios 跳转appstore评论页面

iOS7以前是这样的:  NSString  * nsStringToOpen = [NSString  stringWithFormat: @"itms-apps://ax.itune...

在UC浏览器打开链接唤醒app,如果没有安装该app,则跳转到appstore下载该应用

在UC浏览器打开链接唤醒app,如果没有安装该app,则跳转到appstore下载该应用 需要在工程中设置如下: 1、打开工程中的myapp-Info.plist文件 2、打开文件中新增URL ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)