文档章节

iOS检测更新功能

gdxz110
 gdxz110
发布于 2016/09/14 17:57
字数 323
阅读 12
收藏 0

//
//  LBViewController.m
//  LiveBroadcast
//
//  Created by gz on 16/9/14.
//  Copyright © 2016年
//

#import "LBViewController.h"


#define kAPP_URL @"http://itunes.apple.com/lookup?id="
#define kAppID @"112125"

[@interface](https://my.oschina.net/u/996807) LBViewController () {
    NSString * _trackViewUrl;
}

[@end](https://my.oschina.net/u/567204)

@implementation LBViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (void)checkUpdateApp {
    NSError *error;
    //kAPP_URL : http://itunes.apple.com/lookup?id=
    //kAppId : 在iTunes connect上申请的APP ID
    NSString *urlStr = [NSString stringWithFormat:@"%@%@", kAPP_URL, kAppID];
    NSURL *url = [NSURL URLWithString:urlStr];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    
    NSDictionary *appInfoDict = [NSJSONSerialization JSONObjectWithData:response
                                                                 options:NSJSONReadingAllowFragments
                                                                   error:&error];
//    NSDictionary *appInfoDict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
    
    if (error) {
        NSLog(@"%@", error.description);
        return;
    }
    
    NSArray *resultArray = [appInfoDict objectForKey:@"results"];
    
    if (![resultArray count]) {
        NSLog(@"error : resultArray == nil");
        return;
    }
    
    NSDictionary *infoDict = [resultArray objectAtIndex:0];
    //获取服务器上应用的最新版本号
    NSString *appleV = infoDict[@"version"];
    NSString *aV = [appleV copy];
    
    NSString *trackName = infoDict[@"trackName"];
    
    _trackViewUrl = infoDict[@"trackViewUrl"];
    
    //获取当前设备中应用的版本号
    NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
    NSString *cV = [infoDic objectForKey:@"CFBundleShortVersionString"];
    
    cV = [cV stringByReplacingOccurrencesOfString:@"." withString:@""];
    aV = [aV stringByReplacingOccurrencesOfString:@"." withString:@""];
    
    NSInteger length = MIN(cV.length, aV.length);

    cV = [cV substringToIndex:length];
    aV = [aV substringToIndex:length];

    CGFloat updateVersion = [aV doubleValue];
    CGFloat currentVersion = [cV doubleValue];
    //判断两个版本是否相同
    if (currentVersion <= updateVersion) {
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"%@",trackName] message:[NSString stringWithFormat:@"发现新版本(%@),是否更新", appleV] preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
        }];
        [alertController addAction:cancelAction];
        UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"升级" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:_trackViewUrl]];
        }];
        [alertController addAction:sureAction];
        [self presentViewController:alertController animated:YES completion:nil];
        
    } else {  //版本号和app store上的一致
    }
}

@end

© 著作权归作者所有

gdxz110
粉丝 7
博文 79
码字总数 30516
作品 0
广州
程序员
私信 提问
iOS 10.3.3 和 macOS Sierra 10.12.6 正式发布

今天凌晨,苹果发布了 iOS 10.3.3 的正式版固件,这也是 iOS 10 的最后一个版本的系统更新,此次更新包含问题修复以及对 iPhone 或 iPad 安全性的改进。 iOS 11 目前正在紧张的开发当中并即将...

局长
2017/07/20
5K
16
iOS 12 真的能让旧款 iPhone 速度飞起吗?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/csdnnews/article/details/82757910 去年 9 月,苹果在发布 iOS 11 时曾表示,这是先进移动操作系统 iOS 的又...

CSDN资讯
2018/09/18
0
0
苹果 iOS 10 更新消息汇总,iPhone 4s 可能用不了

自从iOS 7放弃沿用数代的拟物化界面,开启全新的扁平化系统以来,iOS每一年都在前作的基础上进行完善,使iOS更加的好用、完美。去年6月,苹果发布了新一代操作系统iOS 9,并在9月份发布新款i...

oschina
2016/05/30
5.2K
29
苹果发布 iOS 9.2 正式版:多项功能增强、改进

除了发布 OS X 10.11.2 和 tvOS 9.1 正式版外,苹果今天还发布了 iOS 9.2 正式版。iOS 9.2 是自 iOS 9 在今年9月发布之后的第二次重大版本更新。iOS 9.2 测试开始于10月底,开发者和公测用户...

oschina
2015/12/09
3.8K
22
iOS股票K线图、校园助手、适配iPhone X、版本检测等源码

iOS精选源码 快速创建menuItem控件 YHPhotoBrowser 优化的网络图片浏览 cocoaAsynSocket demo (包含客户端和服务端) SwipeMenuViewController现在支持iPhoneX和Swift4。 仿微信的提醒对话框 ...

sunnyaigd
2017/10/31
40
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
12
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
4
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.2K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部