首页 > 代码库 > iOS AppStore版本升级详解

iOS AppStore版本升级详解

虽然App Store能够提醒用户软件更新,但很多用户不会主动去更新一大堆的软件(我机器上待更新的软件在100个左右)。如果在软件开启时提醒用户更新 或者 更多中设置“检查更新”项,效果会好很多。
  通常的做法是在自己的服务器上记录最新版本号,从iOS客户端请求,与本地版本号比较,不同则提示更新。这种做法简单,缺点是需要单独的服务器支持。

  通过查阅相关文章,找到了如下方法,与上述方法类似,不过不需要另外的服务器支持。此为检查更新的最优方法。

NSString *version = @"";NSURL *url = [NSURL URLWithString:@"http://itunes.apple.com/lookup?id=954270"];versionRequest = [ASIFormDataRequest requestWithURL:url];[versionRequest setRequestMethod:@"GET"];[versionRequest setDelegate:self];[versionRequest setTimeOutSeconds:150];[versionRequest addRequestHeader:@"Content-Type" value:@"application/json"]; [versionRequest startSynchronous];//Response string of our REST callNSString* jsonResponseString = [versionRequest responseString];NSDictionary *loginAuthenticationResponse = [jsonResponseString objectFromJSONString];NSArray *configData = http://www.mamicode.com/[loginAuthenticationResponse valueForKey:@"results"];for (id config in configData) {  version = [config valueForKey:@"version"];}//Check your version with the version in app storeif (![version isEqualToString:[itsUserDefaults objectForKey:@"version"]]) {   ProAlertView *createUserResponseAlert = [[ProAlertView alloc] initWithTitle:@"New Version!!" message: @"A new version of app is available to download" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles: @"Download", nil];   [createUserResponseAlert show];    [createUserResponseAlert release];}
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {    // the user clicked one of the OK/Cancel buttons    if (buttonIndex == 1)    {        NSString *iTunesLink = @"itms-apps://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftwareUpdate?id=<appid>&mt=8";        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];    }}

请求http://itunes.apple.com/lookup?id=954270返回的数据给出的version为2.3, 与本地客户端版本号比较,即可判断有无更新。

iOS AppStore版本升级详解