iOS通过iTunes search检测版本更新,并提示用户更新!

checkVersion-iOS:用于检查 AppStore 上是否有新版本的代码 检查更新iOS 用于检查 AppStore 上是否有新版本的代码。 此代码是基于代码的版本。 用法 您可以通过调用强制更新 CheckUpdate.shared.showUpdate(withConfirmation: false) 或者用户可以通过调用选择是现在更新还是稍后更新 CheckUpdate.shared.showUpdate(withConfirmation: true) 重要的 代码里面有一个来自 iTunes 的链接。 在那里,您应该注意并放置应用程序可用的国家/地区。 像这样: http://itunes.apple.com/<country>/lookup?bundleId=\(identifier) : http://itunes.apple.com/<country>/lookup?bundleId=\(identifier) 例如: 如果应用程序在巴 立即下载

iOS通过iTunes search检测版本更新,并提示用户更新!


如果我们要检测app版本的更新,那么我们必须获取当前运行app版本的版本信息和appstore 上发布的最新版本的信息。


当前运行版本信息可以通过info.plist文件中的bundle version中获取:

?
1
2
3
4
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
     CFShow(infoDic);
     
     NSString *appVersion = [infoDic objectForKey:@ "CFBundleVersion" ];

这样就获取到当前运行的app的版本了


要获取当前app store上的最新的版本,有两种方法,

一、在某特定的服务器上,发布和存储app最新的版本信息,需要的时候向该服务器请求查询。


二、从app store上查询,可以获取到app的作者,连接,版本等。官方相关文档

www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.htm


具体步骤如下:
1,用 POST 方式发送请求:
http://itunes.apple.com/search?term=你的应用程序名称&entity=software

更加精准的做法是根据 app 的 id 来查找:
http://itunes.apple.com/lookup?id=你的应用程序的ID

#define APP_URL http://itunes.apple.com/lookup?id=你的应用程序的ID

你的应用程序的ID 是 itunes connect里的 Apple ID

2,从获得的 response 数据中解析需要的数据。因为从 appstore 查询得到的信息是 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; 
      }  
    );  
}  

然后从中取得 results 数组即可,具体代码如下所示:

NSDictionary *jsonData = [dataPayload JSONValue];  
NSArray *infoArray = [jsonData objectForKey:@"results"];  
NSDictionary *releaseInfo = [infoArray objectAtIndex:0];  
NSString *latestVersion = [releaseInfo objectForKey:@"version"];  
NSString *trackViewUrl = [releaseInfo objectForKey:@"trackViewUrl"];  

如果你拷贝 trackViewUrl 的实际地址,然后在浏览器中打开,就会打开你的应用程序在 appstore 中的介绍页面。当然我们也可以在代码中调用 safari 来打开它。
UIApplication *application = [UIApplication sharedApplication];  
[application openURL:[NSURL URLWithString:trackViewUrl]];  


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-( void )onCheckVersion:(NSString *)currentVersion
{
     NSString *URL = APP_URL;
     NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
     [request setURL:[NSURL URLWithString:URL]];
     [request setHTTPMethod:@ "POST" ];
     NSHTTPURLResponse *urlResponse = nil;
     NSError *error = nil;
     NSData *recervedData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
     
     NSString *results = [[NSString alloc] initWithBytes:[recervedData bytes] length:[recervedData length] encoding:NSUTF8StringEncoding];
     NSDictionary *dic = [results JSONValue];
     NSArray *infoArray = [dic objectForKey:@ "results" ];
     if ([infoArray count]) {
         NSDictionary *releaseInfo = [infoArray objectAtIndex:0];
         NSString *lastVersion = [releaseInfo objectForKey:@ "version" ];
         
         if (![lastVersion isEqualToString:currentVersion]) {
             trackViewURL = [releaseInfo objectForKey:@ "trackVireUrl" ];
             UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@ "更新" message:@ "有新的版本更新,是否前往更新?" delegate:self cancelButtonTitle:@ "关闭" otherButtonTitles:@ "更新" , nil] autorelease];
             [alert show];
         }
     }
}
 
Android版本更新(检测、升级),检测版本,通过apk路径下载安装包 Android版本更新(检测、升级),检测版本,通过apk路径下载安装包,并进度条展示,安装 立即下载

相关推荐

华为iTrustee实战:5分钟搞定TrustZone环境搭建(附BoostKit配置技巧)

本文提供了一份华为iTrustee与ARM TrustZone环境的5分钟快速搭建实战指南。详细介绍了在TaiShan服务器上利用鲲鹏BoostKit套件部署可信执行环境(TEE)的完整流程,包括环境检查、驱动安装、首个可信应用(TA)的编译与运行,并分享了关键的BoostKit配置技巧与深度排错方法,助力开发者快速为业务注入硬件级安全能力。

yoga7的博客 966

Oracle OLTP表压缩技术

Search Results for: Oracle OLTP表压缩技术 Oracle OLTP表压缩技术 2013/02/21 by Maclean Liu 暂无评论 对于启用11g OLTP压缩特性的表而言,当发生INSERT时若块内部空间的阈值未达到则不作压缩,若INSERT后达到阈值则触发压缩,如上图所示。 该压缩一般与commit/rollback无关

chairrat的专栏 482

国民技术N32G45X低功耗问题之更改全局变量和栈在RAM中的地址

最近项目中用的MCU是国民技术的N32G45X,MCU的资源很丰富,RAM也很大,配套的库和例程也比较全,用起来还是不错的,但是在调试低功耗的时候还是费了不少劲。 首先由于项目低功耗需要,只能选择停机模式2(STOP2)。根据数据手册的描述,在此模式下外部低速时钟开启, RTC运行, R-SRAM保持,所有I/O状态保持,独立看门狗处于关闭状态,25℃的条件下电流为10个微安。 用的这款MCU的RAM是144KB,分为SRAM(128KB)和R-SRAM( Retention SRAM – 16KB),如果

狂想家 2485

iOS 搜索功能实现

本文主要讲述了如何使用UISearchController实现搜索栏,现在把实现思路和代码整理出来分享给iOS程序员兄弟们,希望给他们的开发工作带来帮助。 查看源代码 打印帮助 1   UISearchController 继承自UIViewController     // 在iOS 8.0以上版本中, 我们可以使用UISe

ZhengYanFeng1989的博客 2186

光伏发电系统模拟及其发电预测开源python工具pvlib

本文介绍光伏发电系统模拟及其发电预测开源python工具pvlib,以及举例介绍获取辐照度方法、光伏发电预测思路。

肖永威的专栏 1万+

ISP工程师实战笔记:5种Demosaic算法优缺点对比(含Hamilton/DFPD代码片段)

本文从ISP工程师实战角度,深入对比了五种经典Demosaic算法的优缺点。文章详细剖析了双线性插值、Hamilton、DFPD、DLMMSE和GBTF等算法的核心思想、实现差异与性能表现,并提供了Hamilton和DFPD算法的关键代码片段。重点探讨了在图像信号处理流水线中,如何根据画质、计算复杂度和功耗等工程约束进行算法选型与权衡。

weixin_42527589的博客 248

iOS自动更新如何实现

APP检测更新可以使用两种方法。第一种是和安卓等系统一样,获取自己服务器的APP版本号与已安装的APP版本号比较;第二种是根据已发布到app store上的应用版本号与已安装的APP版本号比较更新。第一种检测更新方法的优点是:检测更新速度快、检测稳定;缺点是:和app store上的应用版本号不同步(app上架需要审核时间,不确定什么时候成功更新到app store上)。第二种方法检测更...

weixin_30905981的博客 334

单精度浮点数存储、双精度浮点数存储

单精度浮点数存储、双精度浮点数存储

fancynthia的博客 1312

iOS检查版本更新、APPStore更新地址和评价地址

From: http://snowyshell.blog.163.com/blog/static/2209140342013924929888/ 以下XXX是itunesconnect网站上对应app的Apple ID,它是一串纯数字 检查更新网址: APPLE_URL :"http://itunes.apple.com/lookup?id=XXX" 通过检查最

caizhongtao的专栏 3818

5G NR PDCCH实战解析:从DCI格式到CORESET配置的完整指南

本文深入解析5G NR PDCCH的实战配置,涵盖DCI格式选择、CORESET配置及Search Space优化等关键内容。基于3GPP R16标准,提供现网部署中的典型问题解决方案,如覆盖边缘失步、多用户调度冲突等,帮助提升控制信令传输效率。特别针对5G NR PDCCH的灵活资源分配和自适应编码机制进行详细探讨。

weixin_29231263的博客 498

STM32硬件SPI配置为全双工模式下不要单独使用HAL_SPI_Transmit API及HAL_SPI_TransmitReceive改造方法

STM32 HAL库中SPI全双工模式使用问题总结:当配置为全双工模式时,单独使用HAL_SPI_Transmit会导致后续接收数据异常,原因是该API未处理接收数据。改造HAL_SPI_TransmitReceive使其支持单纯的发送/接收模式:当pTxData为NULL时只关心接收数据,pRxData为NULL时只关心发送数据,但仍会保持全双工通信。建议在全双工模式下统一使用改造后的HAL_SPI_TransmitReceive函数。

kevin1499的博客 901
上一篇: iOS 各版本中的新特性(What's New in iOS)- 目录翻译完成
下一篇: iOS 开发库(iOS Developer Library)
光速之年
博客等级 码龄12年 31粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值