zoukankan      html  css  js  c++  java
  • 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]];
                }
            }
        }
    }
  • 相关阅读:
    POJ 1141 括号匹配 DP
    881. Boats to Save People
    870. Advantage Shuffle
    874. Walking Robot Simulation
    文件操作
    861. Score After Flipping Matrix
    860. Lemonade Change
    842. Split Array into Fibonacci Sequence
    765. Couples Holding Hands
    763. Partition Labels
  • 原文地址:https://www.cnblogs.com/YangFuShun/p/4678890.html
Copyright © 2011-2022 走看看