ios实现app强制更新功能
发布时间 - 2026-01-11 01:00:03 点击率:次最近因项目需求,需要用到强制更新功能,网上搜了一下,挺多的,但是把网上的代码拷贝以后,发现一个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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
lovemo网页版地址 lovemo官网手机登录
浅析上传头像示例及其注意事项
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
北京网站制作公司哪家好一点,北京租房网站有哪些?
公司门户网站制作流程,华为官网怎么做?
LinuxCD持续部署教程_自动发布与回滚机制
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
JavaScript Ajax实现异步通信
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
音乐网站服务器如何优化API响应速度?
微信小程序 闭包写法详细介绍
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
javascript基于原型链的继承及call和apply函数用法分析
零服务器AI建站解决方案:快速部署与云端平台低成本实践
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
Laravel怎么在Controller之外的地方验证数据
Laravel如何处理文件下载请求?(Response示例)
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
原生JS实现图片轮播切换效果
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
黑客入侵网站服务器的常见手法有哪些?
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
无锡营销型网站制作公司,无锡网选车牌流程?
zabbix利用python脚本发送报警邮件的方法
,怎么在广州志愿者网站注册?
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel如何为API编写文档_Laravel API文档生成与维护方法
Laravel如何配置任务调度?(Cron Job示例)
如何做网站制作流程,*游戏网站怎么搭建?
详解Android图表 MPAndroidChart折线图
免费视频制作网站,更新又快又好的免费电影网站?
如何打造高效商业网站?建站目的决定转化率
如何在香港免费服务器上快速搭建网站?
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
Laravel如何使用Blade模板引擎?(完整语法和示例)
如何用5美元大硬盘VPS安全高效搭建个人网站?
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
html5的keygen标签为什么废弃_替代方案说明【解答】
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
打造顶配客厅影院,这份100寸电视推荐名单请查收
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
如何用VPS主机快速搭建个人网站?

