iOS版本更新有两种,第一种是把版本号放在我们自己的服务器上,通过接口对比实现,这种一般用在企业开发者账号,也就是不用上架appstore上面的比较多。还有一种就是上架到appstore上面,我们可以通过连接获取到。第一种比较简单,就不说了 下面我直接把第二种写一下
1》
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//ios应用版本更新
[self VersionButton];
}
2》
-(void)VersionButton
{
NSString *string =[NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://itunes.apple.com/lookup?id=1097022833"] encoding:NSUTF8StringEncoding error:nil];
if (string!=nil && [string length]>0 && [string rangeOfString:@"version"].length==7) {
[self checkAppUpdate:string];
}
}
这里说一下http://itunes.apple.com/lookup?id=1097022833这个连接,这个连接前面的是固定的,后面的id=多少就是我们在itunes上创建的app的appleid,也就是itunes上面的应用id,只要你创建app便会给你分配一个appleid,这个跟上不上架没关系。如果我们的程序在app上已经上架,那么我们可以打印一下string看一下里面的内容,其中就包括version,如果我们是第一次上架,那么这个string就是
{
"resultCount":0,
"results": []
}
这时候,就不会走if里面的方法了。
应用程序id查询,如图:
3》
-(void)checkAppUpdate:(NSString *)appInfo
{
//获取当前版本
NSString *version=[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
//下面两句为截取appinfo内容中(也就是我们在appstore正在上架的程序信息)的version,根据version的长度不动,截取的长度也不同,如果又的应用版本已板鞋1.0,3.2 这种短的格式,那么请自行调整截取长度以获得version
NSString *appInfo1=[appInfo substringFromIndex:[appInfo rangeOfString:@"\"version\":"].location+10];
appInfo1=[[appInfo1 substringToIndex:[appInfo1 rangeOfString:@","].location] stringByReplacingOccurrencesOfString:@"\"" withString:@""];
//判断
if(![appInfo1 isEqualToString:version]){
HSLog(@"新版本:%@,当前版本%@",appInfo1,version);
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"更新提示" message:[NSString stringWithFormat:@"电丁丁集团版新版本 %@ 已发布,建议更新为最新版本获得更高体验!",appInfo1] delegate:self cancelButtonTitle:@"知道了" otherButtonTitles:@"前去更新", nil];
alert.tag=20;
[alert show];
}else{
HSLog(@"已经是最新版本");
}
}
4》
-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (alertView.tag==20) {
if (buttonIndex==1) {
NSURL *url=[NSURL URLWithString:@"itms-apps://itunes.apple.com/cn/app/dian-ding-ding-ji-tuan-ban/id1097022833?mt=8"];
[[UIApplication sharedApplication]openURL:url];
}
}
}
这里面的url,我再解释一下,前面的是固定的 ,这dian-ding-ding-ji-tuan-ban/id1097022833一串是不固定的,id就是上面的应用程序id,这个dian-ding-ding-ji-tuan-ban是我的app的应用名称的拼音,你们改成自己的。上面这个方法会自动帮我们打开appstore 并且找到这个上架的app,如果第一次上架,那么 已经说了,在开始的时候,就不会走1中的那个if里买的。上面那个连接地址固定部分,我是在mac电脑上 iTunes找个应用,点详情里边,点应用,选择复制链接出来查看,试了很多个应用找出的规律,短名字基本上都是这样,长名字还有英文应用名字的我没试,你们可以自己也试试。