文档章节

iOS 判断版本号

别情花如依丶
 别情花如依丶
发布于 2017/05/08 13:47
字数 264
阅读 16
收藏 1

采用 "https://itunes.apple.com/cn/lookup?id=" + 版本号获取(如果是针对全球上线的用https://itunes.apple.com/lookup?id=) app 信息与本地版本号比较确定是否提示更新.实现代码如下:

/**
 判断 APP 是否有更新

 @param appleid app 在 appstore 的 id 号
 */
- (void)ay_checkAPPVersionWithAppleID:(NSString*)appleid{
    
    NSError *error ;
    NSData *appInfoData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://itunes.apple.com/cn/lookup?id=%@",appleid]] options:NSDataReadingUncached error:&error];
    
    if (!error) {
        NSDictionary *appInfoDic = [NSJSONSerialization JSONObjectWithData:appInfoData options:NSJSONReadingMutableContainers error:nil];
        NSString *appInfoVersion = appInfoDic[@"results"][0][@"version"];// APPStore 版本号
        NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];
        NSString *ceachVersion = [[NSUserDefaults standardUserDefaults] stringForKey:@"CFBundleShortVersionString"];//沙盒缓存版本号
        if ([self ay_getVersionWithStr:appInfoVersion] > [self ay_getVersionWithStr:currentVersion] && ![ceachVersion isEqualToString:appInfoVersion]) {
            //将 appstore 中的版本号同步到本地
            [[NSUserDefaults standardUserDefaults] setValue:appInfoVersion forKey:@"CFBundleShortVersionString"];
            UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"更新提示信息" message:nil preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                if (iOS10orlater) {
                    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"app 下载地址"] options:[NSDictionary dictionary] completionHandler:nil];
                } else {
                    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"app 下载地址"]];
                }
            }];
            UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
            [alertVC addAction:okAction];
            [alertVC addAction:cancelAction];

            [self.window.rootViewController presentViewController:alertVC animated:YES completion:nil];
        }
    }
}

 

© 著作权归作者所有

共有 人打赏支持
别情花如依丶

别情花如依丶

粉丝 4
博文 78
码字总数 20405
作品 6
程序员
加载中

评论(1)

名字不好取啊啊
名字不好取啊啊
get
iOS代码技巧之判断设备及状态

一、判断设备 //设备名称return [UIDevice currentDevice].name; //设备型号,只可得到是何设备,无法得到是第几代设备return [UIDevice currentDevice].model; //系统版本型号,如iPhone OS...

谁家的阿毛
2014/04/17
0
0
iOS代码技巧之判断设备及状态

一、判断设备 //设备名称return [UIDevice currentDevice].name; //设备型号,只可得到是何设备,无法得到是第几代设备return [UIDevice currentDevice].model; //系统版本型号,如iPhone OS...

芳仔小脚丫
2013/08/01
0
4
[iOS开发]使用Swift检测系统版本信息

iOS系统版本获取 获取当前运行系统的版本号: 比较版本号 最主要的是与iOS 8版本进行比较: 其中,NSComparisonResult有三个值: 进行判断 对比较结果进行判断,并做相应的操作:...

Haffe
2014/11/04
0
0
(iOS) FFmpeg iOS 上的安装(可以指定任意版本) 一

一、准备部分 1、去FFmpeg官网下载所需要的版本的源码:官网源码下载地址 2、安装Homebrew: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ...

wf990051004
04/26
0
0
iOS朋友圈,视频播放器、钓鱼小游戏、玻璃动画源码

iOS精选源码 模仿抖音App的ye m切换框架 将所有类型的推送封装成API,提供OC和Swift双版本调用demo2.0 波浪动画 【Swift/Objective-C】强劲的日期选择控件 利用Masonry 和YYlable ,FDTempla...

sunnyaigd
2017/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

c语言之内存分配笔记

先看一个数组: short array[5] = {1,2} // 这儿定义的一个int类型的数组,数组第1和第2个元素值是1和2.其余后面默认会给值为0; 或者 short array[] = {1,2};//这儿数组第1和第2个元素,数组...

DannyCoder
今天
2
0
Shell | linux安装包不用选择Y/N的方法

apt-get install -y packageOR echo "y" | sudo apt-get install package

云迹
今天
2
0
Hadoop的大数据生态圈

基于Hadoop的大数据的产品圈 大数据产品的一句话概括 Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架...

zimingforever
今天
5
0
八大包装类型的equals方法

先看其中一个源码 结论:八大包装类型的equals方法都是先判断类型是否相同,不相同则是false,相同则判断值是否相等 注意:包装类型不能直接用==来等值比较,否则编译报错,但是数值的基本类型...

xuklc
今天
2
0
NoSQL , Memcached介绍

什么是NoSQL 非关系型数据库就是NoSQL,关系型数据库代表MySQL 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗...

TaoXu
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部