iOS 提示用户版本升级

2017-03-10  本文已影响69人  无奈iOSer
现在苹果审核不能看到版本提示更新的字样以及功能,如果你的APP里面有这个功能还有字样,那么恭喜你,你会被拒绝的。但是“操蛋”的策划,还必须让我们实现,给他解释也解释不清楚,他就会说:“别人的怎么有,别人的怎么能通过审核”。听到这是不是有种想打人的冲动。好吧,废话扯得有点多了,还是言归正传吧。我给大家推荐两个思路。

方法一:

1.需要后台的配合,当您的APP还没上架的时候,后台给你返回的数据里面,是没有审核那个字段的。当你的APP上架的时候,让后台返回您的数据里面有这个字段。

注意:这个方法是有个毛病的,如果升级改怎么办呢?升级的时候你的APP是上架状态啊。靠还是搞不定啊。

解决方法:

还是需要后台的配合,你可以发送请求的时候,把你当前的版本号,发送给后台,让后台去判断,该不该返回更新版本信息。(本人思想,能让后台做的,前台就不去搞)

09465884-FEEF-42FB-B333-C72EA6CE2F72.png

方法二:

1.这个就不需要后台了,需要自己代码实现。现在后台都是比较牛逼的,所以只有自己去实现了。

实现的思路:

1.你要获取你在APP store上面的版本号和你程序的版本号进行比较下就OK了,小了就提示用户更新。直接看代码吧。

/**获取程序的版本号*/

NSString *version = [[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleVersion"];

AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];

[mgr.responseSerializer setAcceptableContentTypes: [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil]];

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

//    dict[@"id"] = @"1073033949";//  上架的ID

dict[@"id"] = App_ID;// 你程序的apple ID号

[mgr POST:App_URL parameters:dict success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {// App_URL http://itunes.apple.com/lookup

NSArray *array = responseObject[@"results"];

if (array.count != 0) {// 先判断返回的数据是否为空  没上架的时候是空的

NSDictionary *dict = array[0];

self.dictM = dict;

[array writeToFile:App_URLPath atomically:YES];// 这是我保存到本来了  后面的功能要使用

if ([dict[@"version"] floatValue] > [version floatValue]) {//判断版本大小了

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"更新" message:@"有新的版本更新,是否前往更新?" delegate:self cancelButtonTitle:@"关闭" otherButtonTitles:@"更新", nil] ;

alert.delegate = self;

[alert show];

}

}

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

}];

注意:这个方法也是有个缺陷的,就是苹果返回的数据不能变,一变就不好办了。但是个人觉得,苹果更改的话,也会保留原有数据方法的,所以此担心可以忽略。但是该方法什么时候掉是个问题,是每次启动都要访问还是隔段时间访问,个人觉得一星期访问一次就可以了,如果有更新,就该提示用户了。
上一篇下一篇

猜你喜欢

热点阅读