日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

ios 版本更新提示-硬更新/软更新

發(fā)布時(shí)間:2024/1/3 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 ios 版本更新提示-硬更新/软更新 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)現(xiàn):

強(qiáng)制更新:每次彈框

非強(qiáng)制更新:一天提示一次

代碼如下:

步驟一: 將檢測(cè)更新寫到APPDelegate的applicationDidBecomeActive中

步驟二: 檢測(cè)是否需要更新

步驟三: 針對(duì)非強(qiáng)制更新-首先判斷日期如果是同一天的話就不提示更新,如果不是同一天可以提示更新

邏輯如下:前邊是之前的邏輯 簡(jiǎn)單解釋一下:0代表未提示更新 1代表已經(jīng)提示更新 存日期表示將日期存到內(nèi)存中

前邊是第一次的邏輯,后邊是寫代碼時(shí)候的邏輯,更簡(jiǎn)化了一些

下邊附上核心代碼:

- (void)compareVersionLocalVerson:(NSString *)localVerson appVerson:(NSString *)appVerson andtype:(NSInteger)type andURl:(NSString *)url{
    
    //將版本號(hào)按照.切割后存入數(shù)組中
    NSArray *localArray = [localVerson componentsSeparatedByString:@"."];
    NSArray *appArray = [appVerson componentsSeparatedByString:@"."];
    NSInteger minArrayLength = MIN(localArray.count, appArray.count);
    BOOL needUpdate = NO;
    
    for(int i=0;i<minArrayLength;i++){//以最短的數(shù)組長(zhǎng)度為遍歷次數(shù),防止數(shù)組越界
        
        //取出每個(gè)部分的字符串值,比較數(shù)值大小
        NSString *localElement = localArray[i];
        NSString *appElement = appArray[i];
        
        NSInteger  localValue =  localElement.integerValue;
        
        NSInteger  appValue = appElement.integerValue;
        
        if(localValue<appValue) {
            //從前往后比較數(shù)字大小,一旦分出大小,跳出循環(huán)
            needUpdate = YES;
            break;
        }else if(localValue>appValue){
            needUpdate = NO;
            break;
        }
        
    }
    if (needUpdate) {
        if (type == 1) {//強(qiáng)制更新
            
            [self showForceUpdate];
            
        }else{
            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
            [formatter setDateFormat:@"yyyy-MM-dd"];
            NSString *nowday = [formatter stringFromDate:[NSDate date]];
            NSString *saveDay = [UserDefaults objectForKey:@"versionUpdateKey"];
            if (saveDay == nil) {
                saveDay = @"";
            }
            
            if (![saveDay isEqualToString:nowday]) { //假如不是同一天,更新存儲(chǔ)的日期,并且把isHadShowUpdate 設(shè)置成yes

                [self canChooseUpdate];
                
                [UserDefaults setObject:@"1" forKey:@"isHadShowUpdate"];
                [UserDefaults setObject:nowday forKey:@"versionUpdateKey"];
                
            }else{//如果是同一天的話
                return;
//                if([IsHadShowUpdate  isEqualToString:@"0"]){
//                    [self canChooseUpdate];
//                    [UserDefaults setObject:@"1" forKey:@"isHadShowUpdate"];
//                    [UserDefaults setObject:nowday forKey:@"versionUpdateKey"];
//                }else{
//                   return;
//                }
  
            }
        }
        
        
    }else{
        
    }
}

非強(qiáng)制更新代碼

//可選更新
-(void)canChooseUpdate{
    //彈出提示更新彈框
    UIAlertController *alertVc = [UIAlertController alertControllerWithTitle:@"親,有新版本了" message:@"更穩(wěn)定、快速、多彩的功能和體驗(yàn),點(diǎn)擊立即更新!" preferredStyle:UIAlertControllerStyleAlert];
    //
    UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        
    }];
    
    UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"更新" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        
        NSString *JumpURL = [[NSUserDefaults standardUserDefaults]objectForKey:@"AppURL"];
        
        if(JumpURL.length ==0){
            [JKToast showWithText:@"參數(shù)錯(cuò)誤"];
            return;
        }else{
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:JumpURL]];
            AppDelegate *app = appDelegate;
            UIWindow *window = app.window;
            
            [UIView animateWithDuration:1.0f animations:^{
                window.alpha = 0;
                window.frame = CGRectMake(0, window.bounds.size.width, 0, 0);
            } completion:^(BOOL finished) {
                exit(0);
            }];
        }
        
    }];
    
    
    
    [alertVc addAction:action2];
    [alertVc addAction:action1];
    
    
    
    UIViewController *vc = [UIApplication sharedApplication].delegate.window.rootViewController;
    [vc presentViewController:alertVc animated:YES completion:nil];
}

p.p1 { margin: 0; font: 20px Menlo; color: rgba(0, 0, 0, 1); background-color: rgba(255, 255, 255, 1) }

對(duì)上述的代碼,有任何疑問,可以在下方留言。
也可以給我發(fā)郵件咨詢:673658917@qq.com
或者是直接加qq:673658917
轉(zhuǎn)載請(qǐng)注明出處,謝謝合作。
睡覺舒服,那是給死人準(zhǔn)備的,加油吧,一年后你會(huì)感謝現(xiàn)在的自己的。

總結(jié)

以上是生活随笔為你收集整理的ios 版本更新提示-硬更新/软更新的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。