IosiOS Developer互联网科技

QQ等APP版本更新(iOS)

2016-08-17  本文已影响392人  Devil雅馨
每个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 ̄)づ🙈

上一篇下一篇

猜你喜欢

热点阅读