IOS App版本更新

来源:互联网 发布:c语言蒲福风力等级 编辑:程序博客网 时间:2024/06/05 08:57

前言:检测更新是一个很常见的功能,相信每一个应用都会使用到,话不多说,直接贴码。

大致步骤如下:

1、通过http://itunes.apple.com/lookup?id=应用ID 来获取应用的相关信息;

2、与本地版本号进行比对;

3、如果需要更新,友好提示框;

4、如果需要更新,跳转到AppStore页面进行下载;


#pragma mark - 检测更新- (void)checkSoftVersion{    NSString *versionString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://itunes.apple.com/lookup?id=1146055295"] encoding:NSUTF8StringEncoding error:nil];    if (versionString != nil && [versionString length] > 0 && [versionString rangeOfString:@"version"].length == 7) {        [self checkAppUpdate:versionString];    }}#pragma mark 比较当前版本与新上线版本做比较- (void)checkAppUpdate:(NSString *)appInfo{    NSString *locationVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];    NSString *appVersion = [appInfo substringFromIndex:[appInfo rangeOfString:@"\"version\":"].location + 10];    appVersion = [[appVersion substringToIndex:[appVersion rangeOfString:@","].location] stringByReplacingOccurrencesOfString:@"\"" withString:@""];    if ([appVersion compare:locationVersion] == NSOrderedDescending) {        dispatch_async(dispatch_get_main_queue(), ^{            [IWAlert doubleAlertWithTarget:_tabbarController title:@"已有更新版本" message:@"是否立即跳转到App Store下载 ?" confirmTitle:@"立刻更新" cancleTitle:@"稍后再说" success:^{                //跳转到AppStore页面                NSString *updUrl = @"https://itunes.apple.com/us/app/mei-shang-mei-ke/id1146055295?l=zh&ls=1&mt=8";                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:updUrl]];            } failure:nil];        });    }}


弹窗类的实现

#import <Foundation/Foundation.h>typedef void(^IWAlertSuccessBlock)();typedef void(^IWAlertFailureBlock)();@interface IWAlert : NSObject/** 弹窗 2个按钮 @param target       源 @param title        弹窗标题 @param message      弹窗信息 @param confirmTitle 确认按钮 @param cancleTitle  取消按钮 @param success      成功回调 @param failure      失败回调 */+ (void)doubleAlertWithTarget:(id)target title:(NSString *)title message:(NSString *)message confirmTitle:(NSString *)confirmTitle cancleTitle:(NSString *)cancleTitle success:(IWAlertSuccessBlock)success failure:(IWAlertFailureBlock)failure;@end

#import "IWAlert.h"@implementation IWAlert+ (void)doubleAlertWithTarget:(id)target title:(NSString *)title message:(NSString *)message confirmTitle:(NSString *)confirmTitle cancleTitle:(NSString *)cancleTitle success:(IWAlertSuccessBlock)success failure:(IWAlertFailureBlock)failure{    UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];    UIAlertAction *cancle = [UIAlertAction actionWithTitle:cancleTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {        if (failure == nil) return;        failure();    }];    [alert addAction:cancle];        UIAlertAction *confirm = [UIAlertAction actionWithTitle:confirmTitle style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {        if (success == nil) return;        success();    }];    [alert addAction:confirm];    [target presentViewController:alert animated:YES completion:nil];}@end


0 0