今天要写提示用户更新,之前是跟我们安卓一样后台写一个接口,每次都去请求然后接口控制提示更新,今天不想用这样了就去查了苹果自带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;
}
);
}
扩展
- 如果APP只在国内使用的话可以使用
http://itunes.apple.com/cn/lookup?id=xxxxxxxxxxx - 有国外用户的APP使用这个,要不然resultCount为0
http://itunes.apple.com/lookup?id=xxxxxxxxxxx
如果我的文章对小伙伴们有帮助的话赏小编一瓶矿泉水💰呗,非常感谢