ios 检查是否有新版本的方法

用的时候需要引入一个文件  CheckUpdate.h     和一个代理。

如下 :#import <UIKit/UIKit.h>

//检查更新用的

#import "CheckUpdate.h"

 

@interface ViewController : UIViewController<CheckUpdateDelegate>

 

@end

 

 //目前的是前沿商务的那个id 所以每次都提示更新那个。

//    [CheckUpdate shareInstance].delegate = self;

 

//    [[CheckUpdate shareInstance] checkUpdate]; //检查是否最新版本

 

 

 

下面是需要导入文件的代码:

 

#import <Foundation/Foundation.h>

#import "ASIHTTPRequest.h"

#import "json.h"

 

@protocol CheckUpdateDelegate <NSObject>

 

@optional

- (void)currentVersionHasNewest;

 

@end

 

@interface CheckUpdate : NSObject <UIAlertViewDelegate>

@property (assign, nonatomic) id <CheckUpdateDelegate>  delegate;

 

+ (CheckUpdate *)shareInstance;

- (void)checkUpdate;

 

 

@end

 

 

 

#import "CheckUpdate.h"

 

//APP id为程序申请时得到。更改相应的id查询App的信息

#define kAPPID      @"681579701" //商行乐

 

//应用名字,若需要更改,可自行设置。

#define kAPPName    [infoDict objectForKey:@"CFBundleDisplayName"]

 

//此链接为苹果官方查询App的接口。

#define kAPPURL     @"http://itunes.apple.com/lookup?id="

 

 

@interfaceCheckUpdate ()

{

    NSString *_updateURL;

}

 

@end

 

 

@implementation CheckUpdate

 

+ (CheckUpdate *)shareInstance

{

    static CheckUpdate *update = nil;

    if (!update)

    {

        update = [[CheckUpdate alloc] init];

    }

 

    return update;

}

 

- (void)checkUpdate

{

    NSString *urlStr = [NSString stringWithFormat:@"%@%@",kAPPURL, kAPPID];

    NSURL *url = [NSURL URLWithString:urlStr];

    

    ASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL:url ];

    [request setDidFinishSelector:@selector(checkUpdateFinished:)];

    [request setDidFailSelector:@selector(checkUpdateFailed:)];

    [request setDelegate:self];

    [request startAsynchronous];

}

 

- (void)checkUpdateFinished:(ASIHTTPRequest *)request

{

    if (request.responseStatusCode == 200)

    {

        NSDictionary *infoDict   = [[NSBundle mainBundle]infoDictionary];

        NSString *currentVersion = [infoDict objectForKey:@"CFBundleVersion"];

        NSLog(@"responseString   is   %@",request.responseString);

        NSDictionary *jsonData   = request.responseString.JSONValue;

        NSArray      *infoArray  = [jsonData objectForKey:@"results"];

        

        if (infoArray.count >= 1)

        {

            NSDictionary *releaseInfo   = [infoArray objectAtIndex:0];

            NSString     *latestVersion = [releaseInfo objectForKey:@"version"];

            NSString     *releaseNotes  = [releaseInfo objectForKey:@"releaseNotes"];

            NSString     *title         = [NSString stringWithFormat:@"%@ %@版本", kAPPName, latestVersion];

            _updateURL = [releaseInfo objectForKey:@"trackViewUrl"];

            NSLog(@"_updateURL is %@",_updateURL);

 

            NSLog(@"current is %@,last is %@",currentVersion,latestVersion);

            if ([latestVersion compare:currentVersion] == NSOrderedDescending)

            {

                UIAlertView *alertView = [[UIAlertViewalloc] initWithTitle:title message:releaseNotes delegate:selfcancelButtonTitle:@"忽略"otherButtonTitles:@"App Store下载", nil];

                [alertView show];

            

            }

            else

            {

                if ([self.delegate respondsToSelector:@selector(currentVersionHasNewest)])

                {

                    [self.delegate currentVersionHasNewest];

                }

            }

        }

        else

        {

            if ([self.delegate respondsToSelector:@selector(currentVersionHasNewest)])

            {

                [self.delegatecurrentVersionHasNewest];

            }

        }

    }

    else

        if ([self.delegate respondsToSelector:@selector(currentVersionHasNewest)])

        {

            [self.delegatecurrentVersionHasNewest];

        }

}

 

- (void)checkUpdateFailed:(ASIHTTPRequest *)request

{

//    NSLog(@"data:%@", request.responseString.JSONValue);

}

 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

    if (buttonIndex == 1)

    {

        [[UIApplicationsharedApplication] openURL:[NSURLURLWithString:_updateURL]];

    }

}

 

 

 

@end

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自zhangmingwei.iteye.com/blog/1954769