iOS 怎么在app里提示版本更新
#pragma mark - 检查版本更新
+(void)checkVersion {// if (![self judgeNeedVersionUpdate]) {// return;// }NSString *localVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];NSString *urlStr = @"https://itunes.apple.com/cn/lookup?id=xxx"; //xxx-你的Appid,iTunes可查看[[HDNetworking sharedHDNetworking] GET:urlStr parameters:nil success:^(id _Nonnull responseObject) {int code = [responseObject[@"resultCount"] intValue];if (code == 1) {NSArray *sourceArray = responseObject[@"results"];if (sourceArray.count >= 1) {//AppStore内最新App的版本号NSDictionary *sourceDict = sourceArray[0];NSString *newVersion = sourceDict[@"version"];if ([self judgeNewVersion:newVersion withOldVersion:localVersion]){UIAlertController *alertVc = [UIAlertController alertControllerWithTitle:@"版本更新" message:sourceDict[@"releaseNotes"] preferredStyle:UIAlertControllerStyleAlert];UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"暂不更新" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {}];UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"去更新" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {//跳转到AppStore下载界面[[UIApplication sharedApplication] openURL:[NSURL URLWithString:sourceDict[@"trackViewUrl"]]];}];[alertVc addAction:action1];[alertVc addAction:action2];[[UIApplication sharedApplication].delegate.window.rootViewController presentViewController:alertVc animated:YES completion:nil];}}}} failure:^(NSError * _Nonnull error) {}];
}
//每天进行一次版本判断
- (BOOL)judgeNeedVersionUpdate {NSDateFormatter *formatter = [[NSDateFormatter alloc] init];[formatter setDateFormat:@"yyyy-MM-dd"];NSString *dateString = [formatter stringFromDate:[NSDate date]];NSString *currentDate = [UserDefaultsUtils getCurrentDate];if ([currentDate isEqualToString:dateString]) {return NO;}[UserDefaultsUtils setCurrentDate:dateString];return YES;
}
/*!@brief 判断当前app版本和AppStore最新app版本大小@param newVersion AppStore版本号@param oldVersion 本地APP版本号@return YES为AppStore版本大于本地APP版本*/
- (BOOL)judgeNewVersion:(NSString *)newVersion withOldVersion:(NSString *)oldVersion {NSArray *newArray = [newVersion componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"."]];NSArray *oldArray = [oldVersion componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"."]];if (oldArray.count == newArray.count) {for (NSInteger i = 0; i < newArray.count; i ++) {if ([newArray[i] integerValue] > [oldArray[i] integerValue]) {return YES;} else if ([newArray[i] integerValue] < [oldArray[i] integerValue]) {return NO;}}}return NO;
}
iOS 怎么在app里提示版本更新相关推荐
- ios浏览器打开app页面提示“浏览器打不开该网页,因为网址无效”
在一次开发app中实现遇到的问题,实现H5页面唤醒app并跳转到指定页面,手机没有此app就跳转到商城下载页面,安卓手机有无app进行的跳转都在自己意料之中,毫无问题,但是iOS在有app的时候正常跳 ...
- iOS中文件连接群晖服务器,教你使用群晖怎么在ios的“家庭‘’App(HomeKit)里添加Hom...
教你使用群晖HomeKit 怎么在ios的"家庭"App(HomeKit)里添加HomeBridge设备 此篇作为<群晖Docker快速搭建HomeBridge和HomeAs ...
- app里的“搜索提示“是如何实现的?
用程序员的角度科普生活知识 hello 兄弟们 我是浩说 今天研究个什么事儿呢? 咱就是说:我们在浏览器或者app里搜索的时候 为什么我只输入了一两个字,下面就已经给我罗列出来我想搜的具体内容了 这是 ...
- (0003) iOS 开发之App 适配iOS 10
iOS 10 给开发者带来的变化 顺便加一句:我是第一时间更新Xcode 8正式版的,一切正常,注释快捷键也没有网上说的问题.运行速度更快了,不容易崩溃了! App 做了哪些兼容: 1.UI 兼容, ...
- iOS杂谈15—APP被苹果APPStore拒绝的各种原因
转载:dApps开发者 1.程序有重大bug,程序不能启动,或者中途退出. 2.绕过苹果的付费渠道,我们之前游戏里的用兑换码兑换金币. 3.游戏里有实物奖励的话,一定要说清楚,奖励由本公司负责,和苹果 ...
- iOS上的APP纷纷绕过苹果支付躲避30%抽成:“热更新”“马甲包”
候维科技 近日,有业内人士向手游那点事爆料,有游戏厂商在产品中暗自嵌入第三方支付系统,试图绕过苹果支付,以避免分成.这其实并不是一件新鲜事,在业内早有发生,甚至被俗称为"切支付". ...
- Windows申请iOS证书上架App Store详细教程 (有这一篇就够了)
Windows申请iOS证书上架App Store详细教程 上架基本需求资料 1.苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2.开发好的APP 通过本篇教程,可以学习到ios证书申请 ...
- iOS 应用提交 App Store 上架被拒的原因收集
2019独角兽企业重金招聘Python工程师标准>>> App Store审核指南中文版(2014.10.11更新) 前言 感 谢您付出宝贵的才华与时间来开发iOS应用程程序.从职业 ...
- 25个增强iOS应用程序性能的提示和技巧 — 中级篇
本文由破船译自:raywenderlich 转载请注明出处:BeyondVincent的博客 _____________ 在开发iOS应用程序时.让程序具有良好的性能是非常关键的.这也是用户所期望的. ...
最新文章
- python 密度聚类 使用_使用wgd进行全基因组复制分析
- TCP/IP 基础知识总结
- java开发和测试开发,附小技巧
- ubuntu下apache rewrite的设置
- Redis 分布式方案Redis Cluster
- XLNet(Generalized Autoregressive Pretraining for Language Understanding) 论文笔记
- java hashmap putall_Java ConcurrentHashMap.putAll方法代码示例
- linux目录大小从大到小,linux系统下如何将当前目录下的文件从小到大排列
- MyBatis使用动态SQL语句
- java数字后面加f_java 数字后面 f 和 l
- IAR编译32K限制
- 记忆网络之Dynamic Memory Networks模型介绍及代码实现
- 解决yum安装gcc报错:Error: Package: glibc-headers-2.17-317.el7.x86_64
- 关于windows密码加密算法的说明
- JAVA#泛型'学习札记
- 使用docker安装kurento
- 港股暴涨利好有哪些板块?
- qpainter可以设置某像素点的颜色吗_你知道人类眼球的内在价值高达35亿美金吗?...
- 简单了解HTTP协议与HTTPS协议
- 抚仙湖,一个亦梦亦幻的地方,这个五一节,我们骑友′的诗和远方
热门文章
- Android 代码 空格处理
- Echart 图表模板变量 {a}, {b},{c},{d},{e}
- mdb数据库连接代码_重用与MDB2的现有数据库连接
- Windows控制面板中英文对照表
- aigo U盘修复 被分成3个区,插入就显示格式化,raw无法修复系列问题一并解决
- 权健涉嫌传销犯罪被立案侦查,周洋父亲:很快会提起诉讼
- 高考平行报志愿计算机录取规则,高考录取这件事儿 平行志愿录取规则及填报技巧...
- 一个用Dijkstra算法实现的路由算法的java程序——2 GraphFromFile类
- Java复习五:抽象类+模板设计方法+接口+三种工厂模式
- 计算机三级考试中哪个更有价值?