iOS查询APP Store版本提醒更新

今天要写提示用户更新,之前是跟我们安卓一样后台写一个接口,每次都去请求然后接口控制提示更新,今天不想用这样了就去查了苹果自带API;其它的不多描述了,

问题:查询APP Store的应用相关信息,主要是获取版本号,对比之后提示更新

解决:调用itunes查询

NSString *urlStr    = @"http://itunes.apple.com/lookup?id=1329918420";//id替换即可
[ShaHTTPTool POST:urlStr params:nil success:^(id json) {
        NSString * version = json[@"results"][0][@"version"];//线上最新版本
        NSString *currentVersion= [self version];//当前用户版本
        BOOL result= [currentVersion compare:version] == NSOrderedAscending;
        if (result) {//需要更新
            NSString *updateStr = [NSString stringWithFormat:@"%@V%@",Localized(@"MainLoadFoundNewVersion"),version];
            [self creatAlterView:updateStr];//调用弹框
        }
    } failure:nil];

注:这里比较版本号不是不一样就提示更新升级。而是当前版本号如果比AppStore版备号小的时候提示弹框升级。这样做的最大好处就是苹果在审核App时不会出现提示升级。

//版本
-(NSString *)version
{
    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
    NSString *app_Version       = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
    return app_Version;
}

注:代码大概思路简单说一下
1.拼接url,使用我们要查询应用的id
2.调用封装好的网络工具类,发送请求
3.收到我们要查询的应用的相关信息,json包
4.解析对比判断,提示操作就可以

json包相关数据参数

{  
    resultCount = 1;  
    results =     (  
                {  
            artistId = 开发者 ID;  
            artistName = 开发者名称; 
            price = 0; 
            isGameCenterEnabled = 0;  
            kind = software;  
            languageCodesISO2A =             (  
                EN  
            ); 
            trackCensoredName = 审查名称;  
            trackContentRating = 评级;  
            trackId = 应用程序 ID;  
            trackName = 应用程序名称";  
            trackViewUrl = 应用程序介绍网址;  
            userRatingCount = 用户评级;  
            userRatingCountForCurrentVersion = 1;  
            version = 版本号;  
            wrapperType = software; 
      }  
    );  
}

扩展

  1. 如果APP只在国内使用的话可以使用
    http://itunes.apple.com/cn/lookup?id=xxxxxxxxxxx
  2. 有国外用户的APP使用这个,要不然resultCount为0
    http://itunes.apple.com/lookup?id=xxxxxxxxxxx

如果我的文章对小伙伴们有帮助的话赏小编一瓶矿泉水呗,非常感谢

你可能感兴趣的:(iOS查询APP Store版本提醒更新)