最近因项目需求,需要用到强制更新功能,网上搜了一下,挺多的,但是把网上的代码拷贝以后,发现一个bug,就是进app,弹出框显示,点击现在升级,跳转到AppStore下载里面,但是我不下载,又切回到app里面,发现弹出框就不跳了,其实也简单,就是appdelegate里面有个代理方法,就是当app从后台切到前台走的方法,将强制更新方法在这里面在调用一下就行了~~~话不多说,上代码!!!用的话直接粘贴复制~

效果图:
在appdelegate里面写下面代码
//提示版本更新
[self VersonUpdate];
#pragma mark ------提示用户版本更新------
-(void)VersonUpdate{
//定义app地址
NSString *urld = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%d",1178114725];
NSURL *url = [NSURL URLWithString:urld];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10];
[request setHTTPMethod:@"POST"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@",response);
NSMutableDictionary *receiveStatusDic = [[NSMutableDictionary alloc]init];
if (data) {
NSDictionary *receiveDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
if ([[receiveDic valueForKey:@"resultCount"] intValue] > 0) {
[receiveStatusDic setObject:@"1" forKey:@"status"];
[receiveStatusDic setObject:[[[receiveDic valueForKey:@"results"] objectAtIndex:0] valueForKey:@"version"] forKey:@"version"];
[self performSelectorOnMainThread:@selector(receiveData:) withObject:receiveStatusDic waitUntilDone:NO];
}else{
[receiveStatusDic setValue:@"1" forKey:@"status"];
}
}else{
[receiveStatusDic setValue:@"-1" forKey:@"status"];
}
}];
[task resume];
}
-(void)receiveData:(id)sender
{
//获取APP自身版本号
NSString *localVersion = [[[NSBundle mainBundle]infoDictionary]objectForKey:@"CFBundleShortVersionString"];
NSArray *localArray = [localVersion componentsSeparatedByString:@"."];//1.0
NSArray *versionArray = [sender[@"version"] componentsSeparatedByString:@"."];//3 2.1.1
// if ((versionArray.count == 2) && (localArray.count == versionArray.count)) {
if ([localArray[0] intValue] < [versionArray[0] intValue]) {
[self updateVersion];
}else if ([localArray[0] intValue] == [versionArray[0] intValue]){
if ([localArray[1] intValue] < [versionArray[1] intValue]) {
[self updateVersion];
}else if ([localArray[1] intValue] == [versionArray[1] intValue]){
if ([localArray[2] intValue] < [versionArray[2] intValue]) {
[self updateVersion];
}
}
}
// }
}
-(void)updateVersion{
NSString *msg = [NSString stringWithFormat:@"版本过低,需要升级到最新版本"];
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"升级提示" message:msg preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"现在升级" style:UIAlertActionStyleDestructive handler:^(UIAlertAction*action) {
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://itunes.apple.com/cn/app/m-help/id1178114725?mt=8"]];
[[UIApplication sharedApplication]openURL:url];
}];
[alertController addAction:otherAction];
[self.window.rootViewController presentViewController:alertController animated:YES completion:nil];
}
//当app从后台切到前台时调用的方法
- (void)applicationDidBecomeActive:(UIApplication * )application
{
[self VersonUpdate];
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ios
# app强制更新
# iosapp强制更新
# 强制更新
# android中强制更新app实例代码
# 详谈angularjs中路由页面强制更新的问题
# Android应用强制更新APP的示例代码
# php强制更新图片缓存的方法
# 弹出
# 我不
# 有个
# 在这
# 就不
# 网上
# 升级到
# 多说
# 跳了
# 最新版本
# 大家多多
# 过低
# 跳转到
# 挺多
# 就行了
# 台时
# NSURLRequestReloadIgnoringCacheData
# cachePolicy
# setHTTPMethod
# timeoutInterval
相关文章:
平台云上自助建站如何快速打造专业网站?
建站主机CVM配置优化、SEO策略与性能提升指南
专业网站建设制作报价,网页设计制作要考什么证?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
b2c电商网站制作流程,b2c水平综合的电商平台?
专业公司网站制作公司,用什么语言做企业网站比较好?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何通过FTP服务器快速搭建网站?
个人网站制作流程图片大全,个人网站如何注销?
如何在搬瓦工VPS快速搭建网站?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
制作网站外包平台,自动化接单网站有哪些?
兔展官网 在线制作,怎样制作微信请帖?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何通过商城自助建站源码实现零基础高效建站?
Python如何创建带属性的XML节点
如何制作网站标识牌,动态网站如何制作(教程)?
建站之星如何助力企业快速打造五合一网站?
山东云建站价格为何差异显著?
香港网站服务器数量如何影响SEO优化效果?
如何选择PHP开源工具快速搭建网站?
如何快速搭建响应式可视化网站?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
如何选择高效便捷的WAP商城建站系统?
网站app免费制作软件,能免费看各大网站视频的手机app?
营销式网站制作方案,销售哪个网站招聘效果最好?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
金*站制作公司有哪些,金华教育集团官网?
c# 在高并发场景下,委托和接口调用的性能对比
文字头像制作网站推荐软件,醒图能自动配文字吗?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
如何在腾讯云服务器快速搭建个人网站?
建站之星导航如何优化提升用户体验?
定制建站哪家更专业可靠?推荐榜单揭晓
C#怎么创建控制台应用 C# Console App项目创建方法
高端智能建站公司优选:品牌定制与SEO优化一站式服务
如何选购建站域名与空间?自助平台全解析
如何挑选优质建站一级代理提升网站排名?
制作网站的基本流程,设计网站的软件是什么?
建站之星备案是否影响网站上线时间?
南宁网站建设制作定制,南宁网站建设可以定制吗?
建站主机SSH密钥生成步骤及常见问题解答?
h5在线制作网站电脑版下载,h5网页制作软件?
如何选择靠谱的建站公司加盟品牌?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
海南网站制作公司有哪些,海口网是哪家的?
如何快速生成专业多端适配建站电话?
Python文件管理规范_工程实践说明【指导】
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。