iOS设备检查更新版本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
#pragma mark - 检查更新
- (
void
)checkUpdateWithAPPID:(
NSString
*)APPID
{
//获取当前应用版本号
NSDictionary
*appInfo = [[
NSBundle
mainBundle] infoDictionary];
NSString
*currentVersion = [appInfo objectForKey:@
"CFBundleVersion"
];
NSString
*updateUrlString = [
NSString
stringWithFormat:@
"http://itunes.apple.com/lookup?id=%@"
,APPID];
NSURL
*updateUrl = [
NSURL
URLWithString:updateUrlString];
versionRequest = [ASIFormDataRequest requestWithURL:updateUrl];
[versionRequest setRequestMethod:@
"GET"
];
[versionRequest setTimeOutSeconds:60];
[versionRequest addRequestHeader:@
"Content-Type"
value:@
"application/json"
];
//loading view
CustomAlertView *checkingAlertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleDefault noticeText:@
"正在检查更新..."
];
checkingAlertView.userInteractionEnabled =
YES
;
[
self
.navigationController.view addSubview:checkingAlertView];
[checkingAlertView release];
[versionRequest setCompletionBlock:^{
[checkingAlertView removeFromSuperview];
NSError
*error =
nil
;
NSDictionary
*dict = [
NSJSONSerialization
JSONObjectWithData:[versionRequest responseData] options:
NSJSONReadingMutableContainers
error:&error];
if
(!error) {
if
(dict !=
nil
) {
// DLog(@"dict %@",dict);
int
resultCount = [[dict objectForKey:@
"resultCount"
] integerValue];
if
(resultCount == 1) {
NSArray
*resultArray = [dict objectForKey:@
"results"
];
// DLog(@"version %@",[resultArray objectAtIndex:0]);
NSDictionary
*resultDict = [resultArray objectAtIndex:0];
// DLog(@"version is %@",[resultDict objectForKey:@"version"]);
NSString
*newVersion = [resultDict objectForKey:@
"version"
];
if
([newVersion doubleValue] > [currentVersion doubleValue]) {
NSString
*msg = [
NSString
stringWithFormat:@
"最新版本为%@,是否更新?"
,newVersion];
newVersionURlString = [[resultDict objectForKey:@
"trackViewUrl"
]
copy
];
DLog(@
"newVersionUrl is %@"
,newVersionURlString);
// if ([newVersionURlString hasPrefix:@"https"]) {
// [newVersionURlString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"itms-apps"];
// }
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@
"提示"
message:msg delegate:
self
cancelButtonTitle:@
"暂不"
otherButtonTitles:@
"立即更新"
,
nil
];
alertView.tag = 1000;
[alertView show];
[alertView release];
}
else
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@
"提示"
message:@
"您使用的是最新版本!"
delegate:
self
cancelButtonTitle:
nil
otherButtonTitles:@
"确定"
,
nil
];
alertView.tag = 1001;
[alertView show];
[alertView release];
}
}
}
}
else
{
DLog(
"error is %@"
,[error debugDescription]);
}
}];
[versionRequest setFailedBlock:^{
[checkingAlertView removeFromSuperview];
CustomAlertView *alertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleWarning noticeText:@
"操作失败,请稍候再试!"
];
[
self
.navigationController.view addSubview:alertView];
[alertView release];
[alertView selfRemoveFromSuperviewAfterSeconds:1.0];
}];
[versionRequest startSynchronous];
}
- (
void
)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(
NSInteger
)buttonIndex
{
DLog(@
"newVersionUrl is %@"
,newVersionURlString);
if
(buttonIndex) {
if
(alertView.tag == 1000) {
if
(newVersionURlString)
{
[[UIApplication sharedApplication] openURL:[
NSURL
URLWithString:newVersionURlString]];
}
}
}
}
|
来源:http://blog.csdn.net/heartofthesea/article/details/14127587
本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3539691.html,如需转载请自行联系原作者