美文网首页iOS开发点滴
iOS 获取App Store 版本号更新

iOS 获取App Store 版本号更新

作者: 小和大大 | 来源:发表于2022-09-16 14:41 被阅读0次

    1、获取App Store版本信息

    //    1、填写自己App的ID
        NSString * strurl = [[NSString alloc] initWithFormat:@"http://itunes.apple.com/lookup?id=1491881948"];//替换为自己App的ID
        NSURLSession *session=[NSURLSession sharedSession];
        NSURL *url = [NSURL URLWithString:strurl];
        
        //2.创建可变的请求对象
        NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];
        NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error){
            //4.解析数据
            NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
            NSArray * results = dict[@"results"];
            NSDictionary * dic = results.firstObject;
            NSString * lineVersion = dic[@"version"];//版本号
            NSString * releaseNotes = dic[@"releaseNotes"];//更新说明
            NSString * trackViewUrl = dic[@"trackViewUrl"];//链接
            DSLog(@"App store版本号:%@",lineVersion);
            DSLog(@"更新说明:%@",releaseNotes);
            DSLog(@"App下载链接:%@",trackViewUrl);
            
    //        5、获取本地版本
            NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
            // 本地app版本
            NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
            
    //       6、比较版本信息
            if ([lineVersion floatValue] > [app_Version floatValue]) {
    //            7、回到主线程进行后续操作
                dispatch_async(dispatch_get_main_queue(), ^{
                    [self setGengxinUI];
                });
                
                DSLog(@"^^%@",app_Version);
            }else{
    //            7、回到主线程进行后续操作
                dispatch_async(dispatch_get_main_queue(), ^{
                    [SOSVC SOSToolTipShow:@"提示" message:@"已是最新版本" cancelTitle:@"确定" otherTitle:nil];
                });
                
            }
            
        }];
        
        //3.执行任务
        [dataTask resume];
    

    2、跳转App Store和应用内下载更新app两种方式

    1. 跳转App Store 下载
      // id99637153*是app的唯一id,对应上文的trackViewUrl
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/cn/app/%E4%B8%9C%E6%96%B9%E7%BE%8E%E9%A3%9F/id99637153*?mt=8"] options:@{} completionHandler:nil];
    

    2.应用内更新下载

    导入头文件: #import <StoreKit/StoreKit.h>
    准守协议:<SKStoreProductViewControllerDelegate>
    
    1.实现代理SKStoreProductViewControllerDelegate
    
    SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];
    storeProductViewContorller.delegate = self;
    [storeProductViewContorller loadProductWithParameters: @{SKStoreProductParameterITunesItemIdentifier : @"996371534"} completionBlock:^(BOOL result, NSError *error) {
        if(error){
             NSLog(@"错误%@",error);
        }else{
            //应用界面
            [self.window.rootViewController presentViewController:storeProductViewContorller animated:YES completion:nil];
        }
    }];
    
    //实现取消协议
    - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController{
    [self.window.rootViewController dismissViewControllerAnimated:YES completion:nil];
    [self disMiss];
    }
    

    原文链接:https://www.jianshu.com/p/d2dd7d2f37b2
    链接:https://www.jianshu.com/p/0190e5234af2

    相关文章

      网友评论

        本文标题:iOS 获取App Store 版本号更新

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