iOS开发之检查更新

 

iOS设备检查更新版本:

#pragma mark - 检查更新
- (void)checkUpdateWithAPPID:(NSString *)APPID
{
    //获取当前应用版本号
    NSDictionary *appInfo = [[NSBundle mainBundle] infoDictionary];    
    NSString *currentVersion = [appInfo objectForKey:@"CFBundleVersion"];
    
    NSString *updateUrlString = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",APPID];
    NSURL *updateUrl = [NSURL URLWithString:updateUrlString];
    versionRequest = [ASIFormDataRequest requestWithURL:updateUrl];
    [versionRequest setRequestMethod:@"GET"];
    [versionRequest setTimeOutSeconds:60];
    [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"];
    
    //loading view
    CustomAlertView *checkingAlertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleDefault noticeText:@"正在检查更新..."];
    checkingAlertView.userInteractionEnabled = YES;
    [self.navigationController.view addSubview:checkingAlertView];
    [checkingAlertView release];
    
    [versionRequest setCompletionBlock:^{
        
        [checkingAlertView removeFromSuperview];
        
        NSError *error = nil;
        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:[versionRequest responseData] options:NSJSONReadingMutableContainers error:&error];
        if (!error) {
            if (dict != nil) {
                //            DLog(@"dict %@",dict);
                int resultCount = [[dict objectForKey:@"resultCount"] integerValue];
                if (resultCount == 1) {
                    NSArray *resultArray = [dict objectForKey:@"results"];
                    //                DLog(@"version %@",[resultArray objectAtIndex:0]);
                    NSDictionary *resultDict = [resultArray objectAtIndex:0];
                    //                DLog(@"version is %@",[resultDict objectForKey:@"version"]);
                    NSString *newVersion = [resultDict objectForKey:@"version"];
                    
                    if ([newVersion doubleValue] > [currentVersion doubleValue]) {
                        NSString *msg = [NSString stringWithFormat:@"最新版本为%@,是否更新?",newVersion];
                        newVersionURlString = [[resultDict objectForKey:@"trackViewUrl"] copy];
                        DLog(@"newVersionUrl is %@",newVersionURlString);
                        //                    if ([newVersionURlString hasPrefix:@"https"]) {
                        //                         [newVersionURlString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"itms-apps"];
                        //                    }
                        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:self cancelButtonTitle:@"暂不" otherButtonTitles:@"立即更新", nil];
                        alertView.tag = 1000;
                        [alertView show];
                        [alertView release];
                    }else
                    {
                        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"您使用的是最新版本!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
                        alertView.tag = 1001;
                        [alertView show];
                        [alertView release];
                    }
                }
            }
        }else
        {
            DLog("error is %@",[error debugDescription]);
        }
    }];
    
    [versionRequest setFailedBlock:^{
        [checkingAlertView removeFromSuperview];
        
        CustomAlertView *alertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleWarning noticeText:@"操作失败,请稍候再试!"];
        [self.navigationController.view addSubview:alertView];
        [alertView release];
        [alertView selfRemoveFromSuperviewAfterSeconds:1.0];
    }];
    
    [versionRequest startSynchronous];  
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    DLog(@"newVersionUrl  is %@",newVersionURlString);
    if (buttonIndex) {
        if (alertView.tag == 1000) {
            if(newVersionURlString)
            {
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:newVersionURlString]];
            }
        }
    }
}

 

来源:http://blog.csdn.net/heartofthesea/article/details/14127587

iOS开发之检查更新
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

上一篇:AliOS Things 3.0 开发:OTA之差分升级快速上手


下一篇:《iOS组件与框架——iOS SDK高级特性剖析》——第8章,第8.6节键值存储同步