关于应用版本对比更新

本文的目的就一个,通过对比 App Store 成功发布的App 版本号 来确认当前手机中安装的客户端版本号是否有区别.

如果有区别,那么可以提示用户可以去App Store 升级了.


首先是获取App Store 某个应用的版本号,提供App ID  即可,返回Json形式的字符串

http://itunes.apple.com/lookup?id=507704613

接下来通过 NSMutableURLRequest NSURLConnection  访问上面的Url  获取Json串,代码如下:

[csharp]  view plain copy
  1. NSString *post=nil;  
  2. post=[[NSString alloc]initWithFormat:@"id=%@",_appID];//testid为你的appid  
  3. NSData *postData=[post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];  
  4. NSString *postLength=[NSString stringWithFormat:@"%d",[postData length]];  
  5. NSMutableURLRequest *request=[[NSMutableURLRequest alloc]init];  
  6. [request setURL:[NSURL URLWithString:@"http://itunes.apple.com/lookup?"]];  
  7. [request setHTTPMethod:@"POST"];  
  8. [request setValue:postLength forHTTPHeaderField:@"Content-Length"];  
  9. [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];  
  10. [request setHTTPBody:postData];      
  11.   
  12. NSURLConnection *conn=[[NSURLConnection alloc]initWithRequest:request delegate:self];  
  13. [request release];  
  14. [conn release];  
  15. [post release];  
执行成功后,委托获取Json数据. 此时通过   SBJson 开源框架 将 Json 字符串 转换成    NSDictionary 转换之前先将 获取到的  NSData  转换成 NSString 

[csharp]  view plain copy
  1. -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data  
  2. {  
  3.     [_appInfoData appendData:data];  
  4. }  
  5. -(void) connectionDidFinishLoading:(NSURLConnection *)connection  
  6. {  
  7.     NSString *jsonString=[[NSString alloc] initWithData:_appInfoData encoding:NSUTF8StringEncoding];  
  8.     SBJsonParser *jsonParser = [[SBJsonParser alloc] init];  
  9.     NSDictionary *jsonData = (NSDictionary *)[jsonParser objectWithString:jsonString error:NULL];  
  10. }  

NSDictionary打印出如下结构数据

{

    resultCount = 1;

    results =(

                {

            artistId =公司 ID;

            artistName = "公司名称";

            artistViewUrl = "公司地址,可以看到本公司发布的其他App";

            artworkUrl100 = "大版的App ICON 1024*1024";

            artworkUrl512 = "大版的App ICON 1024*1024";

            artworkUrl60 = "小版的App ICON 57*57";

            bundleId = "com.flyrise.FEOA";//App Identifier

            contentAdvisoryRating = "4+";

            currency = USD;

            description = "描述";

            features = ();

            fileSizeBytes = 4166039;

            formattedPrice = Free;

            genreIds = (

                6000,

                6015

            );

            genres = (

                Business,

                Finance

            );

            ipadScreenshotUrls = (

            );

            isGameCenterEnabled = 0;

            kind = software;

            languageCodesISO2A = (

                ZH

            );

            price = 0;

            primaryGenreId = 6000;

            primaryGenreName = Business;

            releaseDate = "2012-05-18T10:36:58Z";

            releaseNotes = "新版本发布描述";

            screenshotUrls =(

                "介绍图片1",

                "介绍图片2",

                "介绍图片3",

                "介绍图片4",

                "介绍图片5"

            );

            sellerName = "ZHUHAI FLYRISE Co.,LTD";

            supportedDevices =             (

                all

            );

            trackCensoredName = "App 名称";

            trackContentRating = "4+";

            trackId =App ID;

            trackName = "App 名称";

            trackViewUrl = "http://itunes.apple.com/us/app/ye-wu-xie-zuo-ping-tai/id507704613?mt=8&uo=4";//App Store 某个App 的地址

            version = "5.5.1";//App 当前版本号,进行版本对比的重点

            wrapperType = software;

        }

    );

}


通过转换后的NSDictionary 获取App Store发布成功的App 版本号

[csharp]  view plain copy
  1. NSArray *infoArrays=[jsonData objectForKey:@"results"];  
  2. NSDictionary *releaseInfo=[infoArrays objectAtIndex:0];  
  3. NSString *releaseVersion =[releaseInfo objectForKey:@"version"];  

获取手机已经安装的App 版本号

[csharp]  view plain copy
  1. NSString *localVersion =[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];  

那么进行字符串对比,就可以知道需不需要更新了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值