iOS版本检测更新
2014-12-13 11:10
330 查看
其实检测当前版本是否为最新版本,只需要比较当前 APP版本与APP Store上的版本号是否相同即可。如果相同,说明是最新版本,反之则不是最新版本!那么问题来了。如何获取APP Store 上APP的版本信息?方法很简单:
首先,让我们先获取当前APP的版本信息,见代码:
接着,就是获取APP Store上的APP版本信息,如下:
这里需要说一下,通过 http://itunes.apple.com/lookup?id=APPID 请求到的数据是一个JSON数据。APPID可以登陆https://itunesconnect.apple.com 查看所需的APPID。JSON数据格式如下:
如果 APPID错误的话返回如下数据:
如果 APPID 正确,则返回如下数据:
{
"resultCount": 1,
"results": [
{
"advisories": [
],
"artistId": 开发者 ID,
"artistName": 开发者名称,
"artistViewUrl": "开发者信息网址",
"artworkUrl100": "图标",
"artworkUrl512": "图标",
"artworkUrl60": "图标",
"bundleId": BundleID,
"contentAdvisoryRating": "4+",
"currency": "USD",
"description": "描述信息",
"features": [
],
"fileSizeBytes": "文件大小",
"formattedPrice": "售价",
"genreIds": [
分类ID号
],
"genres": [
分类
],
"ipadScreenshotUrls": [
],
"isGameCenterEnabled": false,
"kind": "software",
"languageCodesISO2A": [
支持语言
],
"minimumOsVersion": "支持的最低iOS版本",
"price": 价格,
"primaryGenreId": 6009,
"primaryGenreName": "News",
"releaseDate": "发布时间",
"releaseNotes": "版本新特性",
"screenshotUrls": [
屏幕截图
],
"sellerName": "销售者名称",
"supportedDevices": [
支持的设备
],
"trackCensoredName": "审查名称",
"trackContentRating": "评级",
"trackId": 应用程序ID,
"trackName": "应用程序名称",
"trackViewUrl": "应用程序介绍网址,可以通过这个网址进入App Store进行APP的更新下载",
"version": "版本号",
"wrapperType": "software"
}
]
}
在这里,我们只需要version这个信息。
最后,就是进行版本信息的比较了,只要调用上面两个方法即可,如下:
这样,就完成了版本更新检测了。
值得一提的是:我们前面是通过 http://itunes.apple.com/lookup?id=APPID 来获取信息的。同样,我们还可以通过以下两种方式来获取:
1. 通过 http://itunes.apple.com/lookup?bundleId=BundleId 来获取,BundleId 即你 APP的BundleId
2. http://itunes.apple.com/search?term=你的应用程序名称&entity=software
最后,上面提到的 trackViewUrl 键值我们可以通过以下代码进行打开:
首先,让我们先获取当前APP的版本信息,见代码:
#pragma mark-获取当前app版本信息 - (NSString *)getCurrentAPPVersion { NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; NSString* currentVersion = infoDictionary[@"CFBundleShortVersionString"]; return currentVersion; }
接着,就是获取APP Store上的APP版本信息,如下:
#pragma mark-获取appstore最新app版本 - (NSString *)getCurrentAppStoreVersion { NSString *appID = @"XXXXXX"; NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@", appID]]; NSData* data = [NSData dataWithContentsOfURL:url]; NSDictionary* dicInfo = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; if ([dicInfo[@"resultCount"] integerValue] == 1){ NSString* appStoreVersion = dicInfo[@"results"][0][@"version"]; return appStoreVersion; } return nil; }
这里需要说一下,通过 http://itunes.apple.com/lookup?id=APPID 请求到的数据是一个JSON数据。APPID可以登陆https://itunesconnect.apple.com 查看所需的APPID。JSON数据格式如下:
如果 APPID错误的话返回如下数据:
{ "resultCount":0, "results": [] }
如果 APPID 正确,则返回如下数据:
{
"resultCount": 1,
"results": [
{
"advisories": [
],
"artistId": 开发者 ID,
"artistName": 开发者名称,
"artistViewUrl": "开发者信息网址",
"artworkUrl100": "图标",
"artworkUrl512": "图标",
"artworkUrl60": "图标",
"bundleId": BundleID,
"contentAdvisoryRating": "4+",
"currency": "USD",
"description": "描述信息",
"features": [
],
"fileSizeBytes": "文件大小",
"formattedPrice": "售价",
"genreIds": [
分类ID号
],
"genres": [
分类
],
"ipadScreenshotUrls": [
],
"isGameCenterEnabled": false,
"kind": "software",
"languageCodesISO2A": [
支持语言
],
"minimumOsVersion": "支持的最低iOS版本",
"price": 价格,
"primaryGenreId": 6009,
"primaryGenreName": "News",
"releaseDate": "发布时间",
"releaseNotes": "版本新特性",
"screenshotUrls": [
屏幕截图
],
"sellerName": "销售者名称",
"supportedDevices": [
支持的设备
],
"trackCensoredName": "审查名称",
"trackContentRating": "评级",
"trackId": 应用程序ID,
"trackName": "应用程序名称",
"trackViewUrl": "应用程序介绍网址,可以通过这个网址进入App Store进行APP的更新下载",
"version": "版本号",
"wrapperType": "software"
}
]
}
在这里,我们只需要version这个信息。
最后,就是进行版本信息的比较了,只要调用上面两个方法即可,如下:
#pragma mark -检测更新 - (void)checkUpdate { NSString *curVersion = [self currentAppVersion]; NSString *appStoreVersion = [self currentAppStoreVersion]; if( appStoreVersion != nil ) { if( ![appStoreVersion isEqualToString:curVersion] ) { NSLog(@"有最新版本了哦,快去更新吧"); } else { NSLog(@"当前是最新版本"); } } else { NSLog(@"找不到BundleId"); } }
这样,就完成了版本更新检测了。
值得一提的是:我们前面是通过 http://itunes.apple.com/lookup?id=APPID 来获取信息的。同样,我们还可以通过以下两种方式来获取:
1. 通过 http://itunes.apple.com/lookup?bundleId=BundleId 来获取,BundleId 即你 APP的BundleId
2. http://itunes.apple.com/search?term=你的应用程序名称&entity=software
最后,上面提到的 trackViewUrl 键值我们可以通过以下代码进行打开:
NSString *url = dicInfo[@"results"][0][@"trackViewUrl"]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
相关文章推荐
- IOS检测版本更新(***为app id)
- iOS通过iTunes search检测版本更新,并提示用户更新!
- iOS通过iTunes search检测版本更新,并提示用户更新!
- iOS 检测版本更新
- iOS通过iTunes search检测版本更新,并提示用户更新!
- iOS通过iTunes search检测版本更新,并提示用户更新!
- IOS检测版本更新(***为app id)
- iOS通过iTunes search检测版本更新,并提示用户更新!
- iOS 检测版本更新
- iOS通过iTunes search检测版本更新,并提示用户更新!
- iOS通过iTunes search检测版本更新,并提示用户更新!
- iOS通过iTunes search检测版本更新,并提示用户更新!
- iOS通过iTunes search检测版本更新,并提示用户更新!
- iOS 检测版本更新
- 转载 -- iOS通过iTunes search检测版本更新,并提示用户更新!
- iOS通过iTunes search检测版本更新,并提示用户更新!
- IOS检测版本更新
- iOS开发 检测版本更新
- IOS 版本更新检测
- iOS通过iTunes search检测版本更新,并提示用户更新!