全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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  # 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小时内与您取得联系。