objective-c IOS应用更新
本人开发的开发者技术变现资源聚集地,大家支持下,下面是网址
https://www.baiydu.com
当前苹果已经禁止了,通过IOS应用直接跳转APP下载链接的方法。但是仍然可以使用另外一种方法直接跳转AppStore。
这种方法需要增加一个类库StoreKit.framework。 这里使用这功能是为用户提供更新,下面说下我实现这个功能的详细步骤。
一、增加一个网页到服务器上去,title增加你当前APP的版本号。
二、在viewDidLoad里面增加UIWebView加载服务器上增加的网页,并获取当前版本号
1:下面是是uiwebview 加载网页的代码
-(void)viewDidLoad
{
[super viewDidLoad];
BeeUIWebView* getVersionWebView=[[BeeUIWebView alloc]initWithFrame:CGRectMake(, , , )];
getVersionWebView.backgroundColor = [UIColor redColor];
getVersionWebView.scalesPageToFit =YES;
NSString *pagePath=[NSString stringWithFormat:@"http://www.jmfww.com/Mobile/iosVersionInfo.html"];
NSURL *url =[[NSURL alloc] initWithString: pagePath];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
getVersionWebView.delegate=self;
[getVersionWebView loadRequest:request]; }
2:uiwebview代理
- (void)webViewDidFinishLoad:(UIWebView *)webView
{ NSString *value= [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
NSArray *VersionAndStoreLoadUrlArray= [value componentsSeparatedByString:@","]; NSString *Version=[VersionAndStoreLoadUrlArray objectAtIndex:];
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
// app名称
// NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];
// app版本
NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"]; if (![app_Version isEqualToString:Version]) { showMessage(@"请前往AppStore下载最新版本"); [self openAppStore:@""]; }
}
二、SKStoreProductViewController
//首先引入SKStoreProductViewController代理SKStoreProductViewControllerDelegate
//跳转APPSTORE的方法
-(void)openAppStore:(NSString *)appId{
SKStoreProductViewController *storeProducVC=
[[SKStoreProductViewController alloc]init];
storeProducVC.delegate=self;
NSDictionary *dict=[NSDictionary dictionaryWithObject:appId forKey:SKStoreProductParameterITunesItemIdentifier]; [storeProducVC loadProductWithParameters:dict completionBlock:^(BOOL result, NSError * _Nullable error) {
if (result) {
[self presentViewController:storeProducVC animated:YES completion:nil]; }
}]; } //SKStoreProductViewController返回代理
-(void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController
{
[viewController dismissViewControllerAnimated:YES completion:nil];
}
objective-c IOS应用更新的更多相关文章
- iOS自动更新如何实现
APP检测更新可以使用两种方法.第一种是和安卓等系统一样,获取自己服务器的APP版本号与已安装的APP版本号比较:第二种是根据已发布到app store上的应用版本号与已安装的APP版本号比较更新.第 ...
- ios背景更新和下载
ios背景更新和下载 by 吴雪莹 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NS ...
- iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET
iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET Weex
- Unity应用的iOS热更新
Unity应用的iOS热更新 作者:丁治宇 Unity TechnologiesChina Agenda • 什么是热更新 • 为何要热更新 • 如何在iOS 上对Unity 应用进行热更新 • ...
- iOS热更新实现方式
heart.jpg 苹果静止热更新,可惜我的是企业app,没有这些约束了,随便用.(当然有些热更新已经可以通过苹果审核了,比如JSPatch)官网说的: JSPatch 平台 SDK 1.7.2 以上 ...
- 有关iOS热更新
iOS热更新的几篇文章,看完这几篇,自己集成一下.下面说一下我集成时遇到的问题. 这是原作者的JSPatch的讲解的文章:<JSPatch – 动态更新iOS APP>.<JSPat ...
- iOS热更新-8种实现方式
一.JSPatch 热更新时,从服务器拉去js脚本.理论上可以修改和新建所有的模块,但是不建议这样做. 建议 用来做紧急的小需求和 修复严重的线上bug. 二.lua脚本 比如: wax.热更新时,从 ...
- IOS热更新-JSPatch实现原理+Patch现场恢复
关于HotfixPatch 在IOS开发领域,由于Apple严格的审核标准和低效率,IOS应用的发版速度极慢,稍微大型的app发版基本上都在一个月以上,所以代码热更新(HotfixPatch)对于IO ...
- iOS项目更新之升级Xcode7 & iOS9
金田 前言 Apple 的WWDC所发布内容在给大家带来惊喜之际,给各位iOS开发的同仁却也带来了不同程度的麻烦.首先不讲新功能,就单指原来老版本的项目升级.代码升级,就是一堆问题,而且是不 ...
随机推荐
- [转]五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
当Adobe.Microsoft.Sun等一系列巨头开始表现出对"开源"的青睐时,"开源"的时代即将到来!现今存在的开源协议很多,而经过Open Source ...
- 《Effective Java》—— 对于所有对象都通用的方法
本节主要涉及Object中通用的一些方法,比如equals,hashCode,toString,clone,finalize等等 覆盖equals时请遵守通用约定 equals方法实现的等价关系: 自 ...
- SQLServer查看死锁
SQLServer查看死锁 if exists ( select * from sys.procedures where name like '%USP_ShowLocks%' ) drop proc ...
- Linux常用命令03
上篇我们写到,如何编辑文件,我们有时候,在编辑的时候,有可能会异常的退出,这样的话, linux会针对这个文件生成一个swp文件,当你下次进入vi模式时,就会提示你一个错误 这样,即使你按enter键 ...
- Python中的魔法方法
1.什么是魔法方法? 魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一 ...
- 利用跨域请求来隐藏firbug控制台中的Ajax请求
本文链接:http://www.orlion.ml/63/ 普通jquery的Ajax请求在控制台中是可见的,如下: 而在利用jsonp(json with padding)进行Ajax跨域时,发现A ...
- android 处理302地址
最近项目中需要用到重定向下载,所以找了很多的方法都不合适.因为下载的链接并非单纯的地址,而是需要多次转发的, 在下载的时候用的是URL来打开数据流.但是多次测试并不能对多次跳转的链接打开请求.对于30 ...
- 机器学习&数据挖掘笔记_13(用htk完成简单的孤立词识别)
最近在看图模型中著名的HMM算法,对应的一些理论公式也能看懂个大概,就是不太明白怎样在一个具体的机器学习问题(比如分类,回归)中使用HMM,特别是一些有关状态变量.观察变量和实际问题中变量的对应关系, ...
- 在Python中实现PageFactory模式
关于 PageFactory 的概念主要是Java中内置了PageFactory类. import org.openqa.selenium.support.PageFactory; …… 例子,htt ...
- AsyncTask和Handler对比(转)
1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可 ...