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


}

js判断设备,跳转app应用、android市场或者AppStore

进入微信页面就弹出选择浏览器的框  //js判断是否是苹果设备 function checkIsAppleDevice() { var u = navigator.userAgent,...
  • licyXiaobaiyang
  • licyXiaobaiyang
  • 2016年08月29日 09:06
  • 3669

iOS通过链接,应用内打开APP或者跳转APPStore对应下载

开文:很急着实现的话,请按照最后一句话操作。 一:有一种是替换协议头,即是将 http:// 替换为 itms:// 或者 itms-apps://         然后通过        [[U...
  • horisea
  • horisea
  • 2017年08月31日 10:47
  • 1336

h5页面唤起app(iOS和Android),没有安装则跳转下载页面

由于研究了之后,和同事沟通,找到一个地址进入,分别测试不同手机,机型,安卓进入安卓应用商店,ios进入app store ;所以直接贴了一个链接,即可。 下面方法,暂时没用到,分享给需要的盆友。 ...
  • m0_38073829
  • m0_38073829
  • 2017年06月30日 17:16
  • 2024

Mobile Safari 调用本地APP,否则进入App Store下载

一:思考一个问题 如何让用户通过手机浏览器(Mobile Safari),访问一个URL就能直接打开iOS上的App应用,如果该应用APP没有安装,那么直接跳转到App Store的APP下载页...
  • yongyinmg
  • yongyinmg
  • 2014年04月22日 23:36
  • 25652

从微信跳转到appstore下载App

一.在应用宝创建App的安卓版本的应用 创建方法就不细说了,具体见文档:http://wiki.open.qq.com/wiki/%E5%88%9B%E5%BB%BA%E6%96%B0%E5%BA%9...
  • sinat_35861727
  • sinat_35861727
  • 2017年04月20日 18:15
  • 1776

微信分享屏蔽跳转appstore解决方法

XX的企鹅,什么尿性大家都知道。 最近就是碰到分享的东西到朋友圈,点击分享内容网页上的下载按钮,无法跳转到appstore。 废话不多少,首先马上百度了一下,发现怨声一片。 当然也找到几种方法,当然也...
  • a416863220
  • a416863220
  • 2015年05月28日 09:01
  • 7984

APP不通过AppStore下载,APP应用内完成升级(不需要重新上传、审核)---他人文章链接,自己留着

APP不通过AppStore下载,APP应用内完成升级(不需要重新上传、审核),应用内下载...
  • u012681458
  • u012681458
  • 2014年09月24日 11:08
  • 3145

教你如何获取AppStore软件安装包的路径

前言:本文介绍在Mac下如何找到AppStore下载的安装包路径,以及如何提取出来供以后使用,希望对大家有所帮助(前提:想要提取某个安装包,前提是你正在从AppStore安装这个程序。比如你想提取im...
  • tianyitianyi1
  • tianyitianyi1
  • 2016年09月18日 13:51
  • 1794

android 解决两个应用互相跳转,如果应用已经启动还是会重新打开应用的问题

有时候我们用getPackageManager().getLaunchIntentForPackage("com.xxx.xxx");方法来跳转到另外一个应用,但是发现每次跳转后该应用哪怕在后台已经是...
  • sinat_25689603
  • sinat_25689603
  • 2015年12月02日 16:46
  • 2114

H5跳转到APP指定页面

1.设置urlschemes urlschemes尽量设一个唯一的字符串,例如可以设为:iOS+公司英文名+ 项目工程名 比如我的设为iOSTencentTest,在浏览器中输入地址iOSTenc...
  • Jayant_Y
  • Jayant_Y
  • 2017年12月22日 11:51
  • 328
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS6.0 应用内直接下载程序 不需跳转AppStore
举报原因:
原因补充:

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