【iOS开放】应用从App Store获取版本信息
2014-08-28 10:36
597 查看
在应用成功上架App Store后,长久的保持对产品的维护和版本升级就是必不可少的流程,我们知道在iOS7以后,用户可以在“设置-> iTunes Store和App Store->更新”中选择打开或关闭应用程序的自动更新,当有网络链接时,系统会不停的将每一个应用的版本信息从iTunes Store或App Store 获取,在有更新时执行更新操作。但是这样一来对用户的网络流量以及iOS设备的使用性能就会对应下降,因此有部分用户还是选择关闭自动更新。
我们所要讨论的就是当用户关闭自动更新,或是当应用有自动更新却还没来得及更新的时候,主动的要求程序向App Store发起请求,查询是否有更新:- (void)checkAppUpdate {
//向App Store发起请求,APP_ID为应用上架App Store所分配的ID,country参数代表App Store的区域代码,这里以中国为例
NSString *updateUrlString = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@&country=%@",APP_ID,@"cn"];
NSURL *updateUrl = [NSURL URLWithString:updateUrlString];
NSMutableURLRequest *versionRequest = [NSMutableURLRequest requestWithURL:updateUrl];
[versionRequest setHTTPMethod:@"GET"];
//同步请求,直接获取NSData
NSData *data = [NSURLConnection sendSynchronousRequest:versionRequest returningResponse:nil error:nil];
if (data) {
NSString *resultStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",_appInfo);
}
}
这里需要注意的是,如果你的应用不是Global的,在URL里最好带上你country参数,否则就无法正确获取到应用信息。
用三方的JSON库,或是苹果官方的NSJSONSerialization可以将字符串序列化成为NSDictionary,可以看到在result数组中还有这样几个字段
trackId:就是你的AppId
trackName: 应用名称
trackViewUrl:跳转App Store更新的URL
version: 当前应用在[b]App Store最新的版本[/b]
[b]通过比较版本号进行提示:[/b]
APP_VERSION 为宏定义:
#define APP_VERSION [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]
跳转更新
NSString *trackViewUrl = [[[_appInfo
objectForKey:@"results"]
firstObject] objectForKey:@"trackViewUrl"];//地址trackViewUrl
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:trackViewUrl]];
ok,搞定!!!
我们所要讨论的就是当用户关闭自动更新,或是当应用有自动更新却还没来得及更新的时候,主动的要求程序向App Store发起请求,查询是否有更新:- (void)checkAppUpdate {
//向App Store发起请求,APP_ID为应用上架App Store所分配的ID,country参数代表App Store的区域代码,这里以中国为例
NSString *updateUrlString = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@&country=%@",APP_ID,@"cn"];
NSURL *updateUrl = [NSURL URLWithString:updateUrlString];
NSMutableURLRequest *versionRequest = [NSMutableURLRequest requestWithURL:updateUrl];
[versionRequest setHTTPMethod:@"GET"];
//同步请求,直接获取NSData
NSData *data = [NSURLConnection sendSynchronousRequest:versionRequest returningResponse:nil error:nil];
if (data) {
NSString *resultStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",_appInfo);
}
}
这里需要注意的是,如果你的应用不是Global的,在URL里最好带上你country参数,否则就无法正确获取到应用信息。
用三方的JSON库,或是苹果官方的NSJSONSerialization可以将字符串序列化成为NSDictionary,可以看到在result数组中还有这样几个字段
trackId:就是你的AppId
trackName: 应用名称
trackViewUrl:跳转App Store更新的URL
version: 当前应用在[b]App Store最新的版本[/b]
[b]通过比较版本号进行提示:[/b]
NSString *latestVersion = [[[_appInfo objectForKey:@"results"] firstObject] objectForKey:@"version"]; if (![APP_VERSION isEqualToString:latestVersion]) { //有版本更新 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"有版本更新,是否去更新?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"去更新",nil]; [alert show]; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"当前版本已为最新!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil,nil]; [alert show]; }
APP_VERSION 为宏定义:
#define APP_VERSION [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]
跳转更新
NSString *trackViewUrl = [[[_appInfo
objectForKey:@"results"]
firstObject] objectForKey:@"trackViewUrl"];//地址trackViewUrl
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:trackViewUrl]];
ok,搞定!!!
相关文章推荐
- iOS开发获取设备唯一标识、系统版本、应用版本等信息
- IOS--OC获取app应用版本的信息和当前设备的各种信息,跳转到appstore(二)
- C# 判断本机是否安装Excel及多版本安装?获取Excel进程信息和打开Excel应用软件
- 从App Store上获取已经上架的App版本信息
- 第四章:iOS应用漏洞利用 ——4.3 从日志相关文件获取信息
- 如何在Mac OSX上提取App Store上的iOS应用信息
- 获取指定应用线上版本信息
- 获取APP STORE 上应用或游戏的详细信息
- 获取Android应用版本信息
- 获取手机第三方应用的信息(名称,包名,版本号,版本名,安装包路径,安装包大小)
- 从App Store上获取已经上架的App版本信息
- iOS开发基础-通过代码获取版本更新信息
- 转:从AppStore获取一个iOS App的版本信息
- iOS 获取AppStore线上应用信息
- C# 判断本机是否安装Excel及多版本安装?获取Excel进程信息和打开Excel应用软件
- 获取当前ios系统的版本信息
- iOS 获取版本信息
- app中获取应用名称,版本等信息的方法
- [ios]获取app版本更新检测的不同语言信息
- WP8__从windowsphone app store 中根据app id获取应用的相关信息(下载网址及图片id等)