每个APP都会涉及版本更新的问题,所以APP每次启动有新版本的话都会提示版本更新,和新功能
下面我们来看一下效果图:
做的有点粗糙, 不过呢该实现的都有了, 有强迫症的朋友可以多多注意细节问题哈😘
//
// ViewController.m
// Version update
//
// Created by dllo on 16/8/17.
// Copyright © 2016年 高雅馨. All rights reserved.
//
#import "ViewController.h"
// 这里我们要签一个提示框的协议
@interface ViewController ()<UIAlertViewDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *updateInfo=@"";
NSString *message = [NSString stringWithFormat:@"%@\n",updateInfo];
message=@"--1.增加了添加好友功能。--\n--2.增加了添加好友功能和评论点赞功能。--\n--3.增加了添加好友功能。--\n--4.增加了添加好友功能和评论点赞功能论点赞功能。--\n";//使用中此行注释
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"有新版本发布啦!" message:message delegate:self cancelButtonTitle:@"忽略" otherButtonTitles:@"前往更新", nil];
// [strongSelf willPresentAlertView:alertView];//此方法iOS 7.0之后就不能用
alertView.tag=1243;
//如果你的系统大于等于7.0
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
// CGSize size = [message sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:CGSizeMake(240, 400) lineBreakMode:NSLineBreakByCharWrapping];//ios7之后废弃了
CGRect size=[message boundingRectWithSize:CGSizeMake(240, 400) options:NSStringDrawingUsesFontLeading attributes:nil context:nil];
UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 240, size.size.height)];
textLabel.font = [UIFont systemFontOfSize:15];
textLabel.textColor = [UIColor blackColor];
textLabel.backgroundColor = [UIColor clearColor];
textLabel.lineBreakMode = NSLineBreakByCharWrapping;
textLabel.numberOfLines = 0;
textLabel.textAlignment = NSTextAlignmentLeft;
// textLabel.layer.borderWidth=1;
// textLabel.layer.borderColor=[UIColor grayColor].CGColor;
textLabel.text = message;
[alertView setValue:textLabel forKey:@"accessoryView"];
//这个地方别忘了把alertview的message设为空
alertView.message = @"";
}
[alertView show];
}
// 这里是我在Main.storyboard里约束的一个button
- (IBAction)UpdateBtnClick:(UIButton *)sender {
[self versionUpdate];
}
- (void)versionUpdate {
//获得当前发布的版本
// __weak typeof(self) weakSelf=self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// typeof(self) strongSelf=weakSelf;
// 耗时的操作---获取某个应用在AppStore上的信 息,更改id就行
NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://itunes.apple.com/lookup?id="] encoding:NSUTF8StringEncoding error:nil];
if (string!=nil) {
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSString *version = [[[dic objectForKey:@"results"]firstObject]objectForKey:@"version"];
NSString *updateInfo = [[[dic objectForKey:@"results"]firstObject]objectForKey:@"releaseNotes"];
//获得当前版本
NSString *currentVersion = [[[NSBundle mainBundle]infoDictionary]objectForKey:@"CFBundleShortVersionString"];
dispatch_async(dispatch_get_main_queue(), ^{
// 更新界面
if ( version &&![version isEqualToString:currentVersion]) {
//有新版本
NSString *message = [NSString stringWithFormat:@"%@\n",updateInfo];
message=@"--1.增加了添加好友功能。--\n--2.增加了添加好友功能。--\n2.增加了添加好友功能。\n--3.增加了添加好友功能。--\n--4.增加了添加好友功能。--\n";//使用中此行注释
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"有新版本发布啦!" message:message delegate:self cancelButtonTitle:@"忽略" otherButtonTitles:@"前往更新", nil];
// [strongSelf willPresentAlertView:alertView];//此方法iOS 7.0之后就不能用
alertView.tag=1243;
//如果你的系统大于等于7.0
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
// CGSize size = [message sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:CGSizeMake(240, 400) lineBreakMode:NSLineBreakByCharWrapping];//ios7之后废弃了
CGRect size=[message boundingRectWithSize:CGSizeMake(240, 400) options:NSStringDrawingUsesFontLeading attributes:nil context:nil];
UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 240, size.size.height)];
textLabel.font = [UIFont systemFontOfSize:15];
textLabel.textColor = [UIColor blackColor];
textLabel.backgroundColor = [UIColor clearColor];
textLabel.lineBreakMode = NSLineBreakByCharWrapping;
textLabel.numberOfLines = 0;
textLabel.textAlignment = NSTextAlignmentLeft;
// textLabel.layer.borderWidth=1;
// textLabel.layer.borderColor=[UIColor grayColor].CGColor;
textLabel.text = message;
[alertView setValue:textLabel forKey:@"accessoryView"];
//这个地方别忘了把alertview的message设为空
alertView.message = @"";
}
[alertView show];
}else{
//已是最高版本
// NSLog(@"已经是最高版本");
}
});
}
});
}
/*根据被点击按钮的索引处理点击事件--当被按钮被点击了这里做出一个反馈*/
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1 && alertView.tag==1243)
{
//您的APP链接
NSString *url = @"https://itunes.apple.com/cn/";
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:url]];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
希望对大家有所帮助(づ ̄ 3 ̄)づ🙈