文档章节

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];
        }
    }
}

 

© 著作权归作者所有

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

别情花如依丶

粉丝 5
博文 78
码字总数 20405
作品 6
程序员
私信 提问
加载中

评论(1)

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

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

芳仔小脚丫
2013/08/01
0
4
iOS代码技巧之判断设备及状态

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

谁家的阿毛
2014/04/17
0
0
[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 8.1 首个测试版, 聚焦 Apple Pay

上周一连发布 iOS 8.0.1 和 8.0.2 以后, 苹果今天向开发者发布了 iOS 8.1 第一个测试版, 版本号 12B401. 业界猜测这是为十月 Apple Pay 移动支付上线做准备, 不过尚未得到证实. 开发者可以到...

oschina
2014/09/30
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

Yearning基于Inception的开源SQL审核平台

基础环境: python3 nodejs vuejs mysql python-ldap pymysql mysql 新建数据库 create database Yearning DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Navicat导入初始化数据 : ......

以谁为师
21分钟前
1
0
flutter Expanded用法

使用的地方:一个分类,类似京东的,左右两边都可以滑动 Widget build(BuildContext context) { return Row(children: [ Column( children: <Widget>[ Ex......

大灰狼wow
26分钟前
3
0
Java8 Map中新增的方法使用总结

前言 得益于 Java 8 的 default 方法特性,Java 8 对 Map 增加了不少实用的默认方法,像 getOrDefault, forEach, replace, replaceAll, putIfAbsent, remove(key, value), computeIfPresent,......

kaixin_code
36分钟前
2
0
@TransactionConfiguration

@TransactionConfiguration过时与替代写法 @TransactionConfiguration 替代写法

miaojiangmin
38分钟前
0
0
浅谈Vue响应式(数组变异方法)

很多初使用Vue的同学会发现,在改变数组的值的时候,值确实是改变了,但是视图却无动于衷,果然是因为数组太高冷了吗? 查看官方文档才发现,不是女神太高冷,而是你没用对方法。 看来想让女...

开元中国2015
39分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部