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路径下载安装包,并进度条展示,安装 立即下载

相关推荐

从IR Drop到EM分析:数字IC电源规划中那些没人明说的细节(以MTCMOS配置为例)

本文深入探讨数字IC后端设计中电源规划的关键细节,特别关注MTCMOS配置、电源网络电阻最小化和level shifter供电等实战技巧。通过分析IR Drop和EM问题,提供优化floorplan和powerplan的具体策略,帮助工程师避免常见陷阱,提升芯片设计的稳定性和可靠性。

q9w8e7r6t5的博客 511

Oracle OLTP表压缩技术

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

chairrat的专栏 482

Matlab Arduino 硬件支持包安装 MATLAB_Support_Package_for_Arduino_Hardware

Matlab Arduino硬件支持包离线安装

weixin_43283734的博客 2840

iOS 搜索功能实现

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

ZhengYanFeng1989的博客 2186

VSCode玩转ESP-ADF音频开发:从环境搭建到成功播放MP3的避坑全流程

本文详细介绍了如何在VSCode环境下使用ESP-ADF框架进行ESP32音频开发,从环境搭建到成功播放MP3的全流程。重点解析了`IDF_PATH`和`ADF_PATH`的配置问题,以及如何解决`xTaskCreateRestrictedPinnedToCore`等常见编译错误,帮助开发者快速上手ESP-ADF音频开发。

weixin_42520909的博客 339

Vitis 安装及环境配置

Vitis 官方手册 https://www.xilinx.com/html_docs/xilinx2020_1/vitis_doc/index.html Xilinx Downloads center https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vitis.html 系统要求如下图所示,Windows系统只能支持Vitis嵌入式系统开发流程,不能支持加速设计 1.安装ubuntu18.0

怠桑的博客 7051

iOS自动更新如何实现

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

weixin_30905981的博客 334

在Mac下配置用VSCode编写C/C++程序的环境

前言    最近需要编写一些C/C++程序,由于体量都不是很大所以想要追求一个轻量化的编辑和编译环境,于是想起了在Dock栏吃灰的VSCode。通过查找资料,包括VSCode的官方文档,最终配置实现了Mac下基于VSCode的C/C++编辑环境搭建。 正文    在配置环境之前先检查一下机器上都安装了什么C++编译器,通过以下两条命令可以查看是否安装了g++/clang编译器,本人两种编...

Kalikali的专栏 5万+

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

手把手教你用支付宝密钥工具生成RSA2密钥对(含Windows/Mac操作截图)

本文详细介绍了如何使用支付宝密钥工具生成RSA2密钥对,包括Windows和Mac平台的操作步骤与截图。从工具下载、安装到密钥生成、配置支付宝平台,再到开发环境集成实战,手把手教你完成支付宝支付接口对接。特别强调密钥安全管理和最佳实践,帮助开发者避免常见安全隐患。

mongodb5scout的博客 257

【ESP32设备通信】-LoRa通信

在本文中,我们将使用 Arduino IDE 将 ESP32 与 LoRa SX1278 (Ra-02) 模块连接起来。 我们将创建一个真实的示例项目,通过 LoRa 无线打开/关闭 LED 进行演示。

视觉与物联智能 1890
上一篇: 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、付费专栏及课程。

余额充值