#pragma mark 版本检测 版本升级提示
+(void)judgeAppVersionAndShowNoticeWithView:(UIViewController*)view withAppId:(NSString*)appId
{
NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
//当前App 标示Id
NSString *urlStr = [NSString stringWithFormat:@"%@%@", Judge_AppVersion, appId];
[HttpUtil sendGetRequestWithUrl:urlStr complete:^(NSError *error, NSDictionary *objectDic) {
[GCDQueue executeInMainQueue:^{
debugLog(@"获取版本信息:%@", objectDic);
NSInteger resultCount = [[objectDic objectForKey:@"resultCount"]integerValue];
if (resultCount>=1) {
NSDictionary *results = [[objectDic objectForKey:@"results"]objectAtIndex:0];
NSString *version = [results objectForKey:@"version"];
if (version && ![version isKindOfClass:[NSNull class]] && ![version isEqualToString:@""]) {
//版本比较
BOOL isNeedUpdate = [Tool justifyAppStoreVersionString:version withCurrentVersion:currentVersion];
if (isNeedUpdate) {
//有新版本
NSString *str = [NSString stringWithFormat:@"当前有更新版本%@可以使用, 是否前往下载。", version];
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:str preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"升级" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//去AppStore更新
NSString *appStoreLink = [NSString stringWithFormat:@"http://itunes.apple.com/cn/app/id%@",appId];
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:appStoreLink]];
}];
[alert addAction:cancelAction];
[alert addAction:okAction];
[view presentViewController:alert animated:YES completion:nil];
}
}
}
}];
}];
}
//版本判断 - 多数点 数字判断
+(BOOL)justifyAppStoreVersionString:(NSString*)version withCurrentVersion:(NSString*)currentVersion
{
int updateFlag = 0; //0:默认相等; 1:当前版本大于AppStore版本; 2:AppStore版本大于当前版本-需要升级;
//分割字符串
NSArray *curentVersionArr = [currentVersion componentsSeparatedByString:@"."]; //当前版本
NSArray *appStoreVersionArr = [version componentsSeparatedByString:@"."]; //比较版本
NSInteger count = curentVersionArr.count>appStoreVersionArr.count?appStoreVersionArr.count:curentVersionArr.count;
for (int i=0; i<count; i++) {
NSInteger curV = [[curentVersionArr objectAtIndex:i] integerValue];
NSInteger appV = [[appStoreVersionArr objectAtIndex:i] integerValue];
if (appV<curV) {
updateFlag = 1;
break;
}else if (appV>curV){
updateFlag = 2;
break;
}
}
if (updateFlag == 0) {
//(2.8.1 与 2.8.1.1)(2.5.3 与 2.5) 这种情况
if (appStoreVersionArr.count>curentVersionArr.count)
{
updateFlag = 2;
}
}
BOOL isNeedUpdate = updateFlag==2?YES:NO;
return isNeedUpdate;
}
iOS 版本检测-版本升级提示
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 当你的 app 版本更新之后,一般情况下用户是不会知道的,只有等到 App Store 的图标上有一个大大的"1"...
- 如果要在app里加入提醒用户升级的功能,只需要几个步骤: 获取用户本地app的版本号 获取App Store上本a...