相关文章推荐
性感的西装  ·  Spring ...·  4 月前    · 
腹黑的槟榔  ·  fofa搜索致远oa - OSCHINA ...·  1 年前    · 

ios实现app强制更新功能

作者:飞翔云端的鱼

本篇文章主要介绍了ios实现app强制更新功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近因项目需求,需要用到强制更新功能,网上搜了一下,挺多的,但是把网上的代码拷贝以后,发现一个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调用高德地图SDK的完整步骤
    iOS调用高德地图SDK的完整步骤
    2021-04-04
  • iOS中多线程的入门使用教程(Swift)
    iOS中多线程的入门使用教程(Swift)
    2021-04-04
  • Objective-C 入门篇(推荐)
    Objective-C 入门篇(推荐)
    2021-04-04
  • Swift项目集成QQ授权登录
    Swift项目集成QQ授权登录
    2021-04-04
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2024 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号