• 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]];
                }
            }
        }
    }
  • 相关阅读:
    python 矩阵转置
    go
    Go-GRPC 初体验
    SpringMVC笔记——Spring+MyBatis组合开发简单实例
    MyBatis笔记——EhCache二级缓存
    MyBatis笔记——Mapper动态代理
    MyBatis笔记——初次环境配置
    Spring笔记——配置Hibernate框架事务
    Hibernate笔记——关联关系配置(一对多、一对一和多对多)
    Mysql笔记——触发器简单实例
  • 原文地址:https://www.cnblogs.com/YangFuShun/p/4678890.html
Copyright © 2020-2023  润新知