iOS 检查更新

 1 #pragma mark - 检查更新
 2
 3 - (void)checkUpdateWithAPPID:(NSString *)APPID
 4 {
 5     //获取当前应用版本号
 6     NSDictionary *appInfo = [[NSBundle mainBundle] infoDictionary];
 7     NSString *currentVersion = [appInfo objectForKey:@"CFBundleVersion"];
 8
 9     NSString *updateUrlString = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",APPID];
10     NSURL *updateUrl = [NSURL URLWithString:updateUrlString];
11     versionRequest = [ASIFormDataRequest requestWithURL:updateUrl];
12     [versionRequest setRequestMethod:@"GET"];
13     [versionRequest setTimeOutSeconds:60];
14     [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"];
15
16     //loading view
17     CustomAlertView *checkingAlertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleDefault noticeText:@"正在检查更新..."];
18     checkingAlertView.userInteractionEnabled = YES;
19     [self.navigationController.view addSubview:checkingAlertView];
20     [checkingAlertView release];
21
22     [versionRequest setCompletionBlock:^{
23
24         [checkingAlertView removeFromSuperview];
25
26         NSError *error = nil;
27         NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:[versionRequest responseData] options:NSJSONReadingMutableContainers error:&error];
28         if (!error) {
29             if (dict != nil) {
30                 //            DLog(@"dict %@",dict);
31                 int resultCount = [[dict objectForKey:@"resultCount"] integerValue];
32                 if (resultCount == 1) {
33                     NSArray *resultArray = [dict objectForKey:@"results"];
34                     //                DLog(@"version %@",[resultArray objectAtIndex:0]);
35                     NSDictionary *resultDict = [resultArray objectAtIndex:0];
36                     //                DLog(@"version is %@",[resultDict objectForKey:@"version"]);
37                     NSString *newVersion = [resultDict objectForKey:@"version"];
38
39                     if ([newVersion doubleValue] > [currentVersion doubleValue]) {
40                         NSString *msg = [NSString stringWithFormat:@"最新版本为%@,是否更新?",newVersion];
41                         newVersionURlString = [[resultDict objectForKey:@"trackViewUrl"] copy];
42                         DLog(@"newVersionUrl is %@",newVersionURlString);
43                         //                    if ([newVersionURlString hasPrefix:@"https"]) {
44                         //                         [newVersionURlString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"itms-apps"];
45                         //                    }
46                         UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:self cancelButtonTitle:@"暂不" otherButtonTitles:@"立即更新", nil];
47                         alertView.tag = 1000;
48                         [alertView show];
49                         [alertView release];
50                     }else
51                     {
52                         UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"您使用的是最新版本!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
53                         alertView.tag = 1001;
54                         [alertView show];
55                         [alertView release];
56                     }
57                 }
58             }
59         }else
60         {
61             DLog("error is %@",[error debugDescription]);
62         }
63     }];
64
65     [versionRequest setFailedBlock:^{
66         [checkingAlertView removeFromSuperview];
67
68         CustomAlertView *alertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleWarning noticeText:@"操作失败,请稍候再试!"];
69         [self.navigationController.view addSubview:alertView];
70         [alertView release];
71         [alertView selfRemoveFromSuperviewAfterSeconds:1.0];
72     }];
73
74     [versionRequest startSynchronous];
75 }
76
77 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
78 {
79     DLog(@"newVersionUrl  is %@",newVersionURlString);
80     if (buttonIndex) {
81         if (alertView.tag == 1000) {
82             if(newVersionURlString)
83             {
84                 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:newVersionURlString]];
85             }
86         }
87     }
88 }
时间: 2024-11-01 02:49:23

iOS 检查更新的相关文章

IOS检查更新

昨天在做IOS开发的时候,发现检查更新获取不到版本号 检查连接正常,后来经过电话咨询了解到,由于我的应用只针对中国地区发售,在获取版本号的时候需要在连接中加上/cn 特此做记录 http://itunes.apple.com/lookup?id=*** //此链接为通用连接,但当你的应用只针对中国地区发售的时候,需要增加/CN http://itunes.apple.com/cn/lookup?id=***

iOS开发之检查更新

iOS开发之检查更新 #pragma mark - 检查更新 - (void)checkUpdateWithAPPID:(NSString *)APPID {     //获取当前应用版本号     NSDictionary *appInfo = [[NSBundle mainBundle] infoDictionary];         NSString *currentVersion = [appInfo objectForKey:@"CFBundleVersion"];    

iOS自动检查更新

摘要: 我们每天在app store收到新的应用更新通知,打开应用时也是不是弹出更新的提示框,自动检查更新这个功能随处可见,虽然作为用户来说老看到这种提示挺烦的,但是作为开发者来说让用户始终更新到最新的版本是最好的,个人认为减少用户厌烦情绪的方法之一是详细地说明更新的地方和原因,这样用户会好接受的多.现在就讲讲怎么在工程内实现自动检查更新. 两种方法: 1.检测服务器上给出的版本号,与自身版本对比 如果不是单机应用或游戏,那就会经常需要与自身的后台服务器进行数据通信,与其他通信一样,可以在打开a

IOS中打开应用实现检查更新的功能

//检查更新页面 - (void)Renew{        NSDictionary *infoDic = [[NSBundle mainBundle]infoDictionary];        NSString *version = [infoDic valueForKey:@"CFBundleShortVersionString"];        NSString *ipstr = [NSObject  deviceIPAdress];        NSString *p

iOS快速集成检查更新

一直以为Appstore有了检查版本是否更新的机制,我们在APP上做这个更新功能会被拒,但是也有看到一些APP也是做了这个更新功能的.因为在网上没有找到完全正确的方法能获取到iTunes里的数据的,于是就写此文给需要的开发小伙伴们. 下面我就综合了网上说的两种方法去检查更新: 第一种:获取自己服务器的APP版本号与已安装的APP版本号比较 这是需要服务器去做操作,因为我这边客户端已经做好了,后台又十分忙,我就没去找服务器怎么弄了,我想应该也是和APP差不多去请求itunes的数据,只不过我们AP

【解决方法】iOS 开发小技巧

1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: [java] view plaincopy 字母  日期或时间元素    表示     示例 G     Era   标志符     Text     

iOS 关于版本升级问题的解决

从iOS8系统开始,用户可以在设置里面设置在WiFi环境下,自动更新安装的App.此功能大大方便了用户,但是一些用户没有开启此项功能,因此还是需要在程序里面提示用户的. 虽然现在苹果审核不能看到版本提示更新的功能和字样以及功能.但是有的app策划还是要提供这些功能.这里主要提供两种思路. 方法一 在服务器接口约定对应的数据,这样,服务器直接传递信息,提示用户有新版本,可以去商店升级 但是这个方法是有问题的,由于您的app在审核过程中 不能出现更新字样,所以在审核过程中就需要接口的返回的字段是新版

GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。

1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式. 对于Android 4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于Ice Cream Sandwich的自定义动作栏实现将自动围绕布局.能够让开发者轻松开发

iOS项目开发中的知识点与问题收集整理(Part 一)

前言部分 注:本文并非绝对原创 大部分内容摘自 http://blog.csdn.net/hengshujiyi/article/details/20943045 文中有些方法可能已过时并不适用于现在的开发环境. 1.Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view  [[self.searchBar.subviews objectAtIndex:0]