IOS 获取当前版本号监测版本更新


我们知道 苹果已经不允许APP内置栏目提醒用户升级当前版本,但是我们仍然可以使用进去应用弹窗的方式来曲线提醒用户及时升级到最新版本的APP。

大致步骤如下:
1、获取当前系统存储的APP版本号;
2、获取接口返回的APP最新的版本号;
3、通过比较后决定是否弹窗提醒用户跳转APPstore进行更新。

OK,实现第一步:
#pragma mark - 获取当前App版本号
+(NSString *)getCurrentAppVersion{

NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];//CFBundleVersion
return currentVersion;

}

第二部:获取接口提供的最新版本号,这一步需要后台支持提供对应接口,具体代码不同 

            NSDictionary *dict = result.returndata;

            if (isShowVersion) {//设置BOOL 进入应用后确保只调用一次接口刷新。

                NSString *updateFlag = [dict objectForKey:@"updateFlag"];

                if (updateFlag!=nil&&![updateFlag isEqualToString:@"false"]) {

                    NSString *newVersion = [dict objectForKey:@"versionCode"];

                    NSString *updateType = [dict objectForKey:@"updateType"];

                    NSString *description = [dict objectForKey:@"description"];

                    _downloadUrl = [dict objectForKey:@"updateUrl"];

                    _content = description;

                    if (updateType!=nil&&(NSNull *)updateType!=[NSNull null]&&[updateType isEqualToString:@"forced"]) {

                        [self versionConfirm];//不支持旧版本,直接跳转APPstore页面更新

                        return;

                    } else {

                        [self showVersionAlert];//支持当前版本,但是有新的更新 显示弹窗页面

                    }

                }

            }

            isShowVersion = NO;//关闭标示符,不再调用该接口

        }

    } andVersion:currentVersion andAppType:@"ios"];

}


显示弹窗主要代码:

- (void)showVersionAlert {


     _versionMaskingView = [[ UIView alloc ] initWithFrame :window. frame ];

    _versionMaskingView.backgroundColor = [UIColor blackColor];

    _versionMaskingView.alpha = 0.7;

    [window addSubview:_versionMaskingView];

  UIWindow  *window = [ UIApplication   sharedApplication ]. keyWindow ;

......

//动效

__block UIView *versionView = _versionView;

    __block UIView *tempMaskView = _versionMaskingView;

    [UIView animateWithDuration:0.6 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{

        versionView.transform = CGAffineTransformIdentity;

        versionView.alpha = 1;

        tempMaskView.alpha = 0.4;

    } completion:nil];


}


//关闭弹窗更新

-(void)versionClose {

    __block UIView *tempMaskView = _versionMaskingView;

    __block UIView *versionView = _versionView;

    [UIView animateWithDuration:0.6 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{

        versionView.transform = CGAffineTransformMakeScale(1.5, 1.5);

        versionView.alpha = 0;

        tempMaskView.alpha = 0;

    } completion:^(BOOL finished) {

        [tempMaskView removeFromSuperview];

        tempMaskView = nil;

        [versionView removeFromSuperview];

        versionView = nil;

    }];

}

//跳转APPstore页面更新

-(void)versionConfirm {

    [self versionClose];

    NSURL *url = [NSURL URLWithString:_downloadUrl];

    [[UIApplication sharedApplication]openURL:url];

}



主要需要实现的 基本都在这了,有什么更好地实现方法可以留言分享或者补充。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值