QQ等APP版本更新(iOS)

作者: Devil雅馨 | 来源:发表于2016-08-17 11:03 被阅读392次
    每个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 ̄)づ🙈

    相关文章

      网友评论

      本文标题:QQ等APP版本更新(iOS)

      本文链接:https://www.haomeiwen.com/subject/skjmsttx.html