IOS6.0 应用内直接下载程序 不需跳转AppStore
闲来没事看了篇文章 应用内创建应用商店环境,不跳转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];
}
转载于:https://www.cnblogs.com/superhappy/archive/2013/05/09/3069210.html
IOS6.0 应用内直接下载程序 不需跳转AppStore相关推荐
- 苹果用户在微信内打开下载链接如何不用跳转就能下载app
分析 由于微信引流具备快速性和高效的二次传播性,故众多商家纷纷选择微信推广为主要的推广方式.但在使用微信分享链接和营销方案的过程中经常会遇到分享链接在微信内被拦截从而无法打开或者打开后无法下载文件 的 ...
- 微信上h5页面点击文件下载链接没反应,微信内直接下载app方案
大家在使用微信分享转发链接的时候,都很容易碰到链接在微信中无法打开网页的问题.通常这种情况微信会给个提示 "已停止访问该网址" ,导致这个情况的因素有以下三点. 1.分享链接被多人 ...
- Java黑皮书课后题第3章:**3.22(几何:点是否在圆内)编写程序,提示用户输入一个点(x,y),然后检查这个点是否在以(0,0)为圆心、半径为10的圆内
**3.22(几何:点是否在圆内)编写程序,提示用户输入一个点(x,y),然后检查这个点是否在以(0,0)为圆心.半径为10的圆内 题目 题目概述 课本提示与举例.运行示例 破题 代码 两个浮点数的比 ...
- android 8.0应用内安装包,Android 8.0 下载安装进入【安装未知应用】页面,两步简化一步...
小菜昨天接到客户反馈的问题,说华为手机升级到 Android 8.0 系统以后,程序升级下载之后不能安装:找一个手机测试果然如此,每次下载完之后不跳转安装页面,重新进入程序又继续下载,之后依旧不跳转安 ...
- ios6.0,程序为横屏,出现闪退
本文转载至 http://blog.csdn.net/huanghuanghbc/article/details/10150355 ios6.0,程序为横屏,出现闪退 *** Terminating ...
- 优质开源:共享图书小程序3.0 全新UI 免费下载
优质开源:共享图书小程序3.0 全新UI 免费下载 全新上线的图书共享小程序3.0秉承简约的设计,提供不简约的交互体验 此源码,为开源源码,作者免费提供,一切收费的极为盗版.
- 用4.0蓝牙模块给arduino下载程序
实验器材:Arduino Pro Mini,JDY-08蓝牙4.0模块,USB-TTL串口 由于Arduino下载程序的波特率为57600,所以蓝牙模块的波特率先要设置成57600. 两个4.0蓝牙之 ...
- 普中单片机开发板HC6800-EM3 v2.2 3.0无法烧录下载程序解决
普中科技单片机在淘宝上买了很久了,一直没用,现在要做设计,就拿来看看.这一看不要紧,刚开始就坑死人了写不进程序.研究了一晚上.其实很简单就是短路帽没接对. l 开发板:普中Prechin HC6800 ...
- 站长新手入门:从0开始搭建微信小程序商城,不会代码也能开商城(附带源码)
2020年全球疫情肆虐下,经济环境持续低迷,虽然国内已逐渐复苏,但线下消费仍然没法短期回到常态,所以今年开始直播电商.线上零售更加火爆.那么如果一个没有编程基础,或者说稍微懂一点技术的老板,要做小程序 ...
最新文章
- 面试官:谈一下你对DDD的理解?我:马什么梅?
- Win64 驱动内核编程-10.突破WIN7的PatchGuard
- MFC+OPENCV+显示MAT类型图像
- androidentity什么用_Android multipartentity的用法
- .Net框架集WebClient类向WinCE平台上传文件(FTP方式)延迟15秒释疑
- my-innodb-heavy-4G.cnf中文注释(主要配置文件注释)
- 职教高中计算机专业知识,新课改背景下计算机专业教学(职教)三维目标设计初探...
- VPP buffer不足
- c 语言游戏代码大全,给我提供个小游戏的C 语言代码
- matlab二阶系统曲线,基于matlab的二阶系统的阶跃响应曲线分析
- IE浏览器无法连接网络的解决办法
- 数学建模-层次分析法(AHP)方法回顾
- 传奇服务器脚本文件在哪个文件夹,传奇服务端目录文件详细说明
- PS--人物皮肤处理流程(一)
- 有关DLNA的一个讲座
- react-native-beacons-manager扫描beacons为空数组(android)--工作笔记
- 计算机怎样保存文档,【2人回答】怎么在电脑上写文档并保存?-3D溜溜网
- Oracle如何快速、大量的插入数据
- MYSQL下载后的使用方法
- Deep High-Resolution Representation Learning for Visual Recognition阅读笔记
热门文章
- css position的父级,css position absolute 相对于父元素的设置方式
- 计算机画图工具怎么缩小图片,Win10如何放大或缩小图片?利用win10画图工具放大、缩小图片教程...
- linux parted rpm,为Everest Linux构建QtParted的rpm包(四)
- 单片机彩灯移动实验_用S7-1200 PLC实现循环彩灯的控制,含源程序
- java连接mysql执行ddl_Mysql 执行DDL导致Waiting for table metadata lock
- python基础数据实例_Python基本数据类型及实例详解
- linux学 java_[操作系统]Linux学习第二步(Java环境安装)
- SpringBoot配置postgre多数据源(亲测有效!!!)
- as安装过程中gradle_柯赛分享:楼顶大字安装过程中需要用到哪些工具?
- 点云python-pcl