06.iOS自动检测更新

iOS自动提示更新的实现方案大致分为三种:
第一种
,自己服务器提供一个接口,告知相关app的当前版本,是否需要更新,以及更新的地址等信息 。

第二种,就是利用苹果的App Store提供的相关api进行查询更新。

第三种,采用第三方更新服务,如友盟更新。

官方的app采用的是第一种方法,URL:http://www.560315.com/MobileAPI/versionIOS,采用POST请求,参数为nil,返回json数据。

{
	"verison": "1.0.5",
	"text": "适配了iOS 9.1"
}
通过比较version判断软件是否需要提示更新:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:@"http://www.560315.com/MobileAPI/versionIOS" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        // 获得当前软件的版本号
        NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleVersion"];
        if ([responseObjec[@"verison"] isEqualToString:currentVersion]) {
            // 版本相同...
        } else {
            // 版本不同...
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];

下面我讲介绍第二种方法,利用苹果的App Store提供的相关api进行查询更新。

URL:https://itunes.apple.com/lookup?id=990902550,990902550是程序的appid,采用GET请求,参数为nil,返回json数据。

{
	"resultCount": 1,
	"results": [{
		"artistViewUrl": "https://itunes.apple.com/us/developer/tang-shan-cheng-lian-dian/id1031455573?uo=4",
		"artworkUrl60": "http://is5.mzstatic.com/image/thumb/Purple69/v4/91/d9/85/91d985a6-402f-9da0-0ea7-83beaff6f8a0/source/60x60bb.jpg",
		"artworkUrl100": "http://is5.mzstatic.com/image/thumb/Purple69/v4/91/d9/85/91d985a6-402f-9da0-0ea7-83beaff6f8a0/source/100x100bb.jpg",
		"ipadScreenshotUrls": [],
		"artworkUrl512": "http://is5.mzstatic.com/image/thumb/Purple69/v4/91/d9/85/91d985a6-402f-9da0-0ea7-83beaff6f8a0/source/512x512bb.jpg",
		"screenshotUrls": ["http://a1.mzstatic.com/us/r30/Purple69/v4/df/95/7b/df957bfe-f602-e8f6-9f71-297950ca0eae/screen1136x1136.jpeg", "http://a3.mzstatic.com/us/r30/Purple3/v4/a0/6e/1b/a06e1b80-5378-4028-3592-e5afa563e7c7/screen1136x1136.jpeg", "http://a4.mzstatic.com/us/r30/Purple3/v4/e7/f1/c9/e7f1c936-89d9-6bbe-81bf-c1a05a3fa3b5/screen1136x1136.jpeg", "http://a2.mzstatic.com/us/r30/Purple3/v4/0b/24/45/0b2445eb-86ea-2868-0f78-6268e32bde22/screen1136x1136.jpeg", "http://a5.mzstatic.com/us/r30/Purple69/v4/80/19/c0/8019c07b-b10f-8e8e-3e8a-b771744e7874/screen1136x1136.jpeg"],
		"isGameCenterEnabled": false,
		"kind": "software",
		"features": [],
		"supportedDevices": ["iPad2Wifi", "iPad23G", "iPhone4S", "iPadThirdGen", "iPadThirdGen4G", "iPhone5", "iPodTouchFifthGen", "iPadFourthGen", "iPadFourthGen4G", "iPadMini", "iPadMini4G", "iPhone5c", "iPhone5s", "iPhone6", "iPhone6Plus", "iPodTouchSixthGen"],
		"advisories": ["Unrestricted Web Access"],
		"trackCensoredName": "物流唐山",
		"trackViewUrl": "https://itunes.apple.com/us/app/wu-liu-tang-shan/id990902550?mt=8&uo=4",
		"contentAdvisoryRating": "17+",
		"fileSizeBytes": "22953228",
		"languageCodesISO2A": ["EN", "ZH"],
		"trackContentRating": "17+",
		"currency": "USD",
		"wrapperType": "software",
		"version": "1.0.5",
		"artistId": 1031455573,
		"artistName": "唐山成联电子商务有限公司",
		"genres": ["Business", "Utilities"],
		"price": 0.00,
		"description": "找车、找货、找仓储,找物流唐山!\n“物流唐山APP”是唐山市各类物流资源聚合、在线交易的专业物流移动客户端。同名PC版平台是商务部城市共同配送公共信息服务示范平台。\nAPP设有21个功能模块,全面满足不同用户获取货源、车源、库源、专线、配货站、物流园区、配送中心等多样化需求,同时提供地理位置信息、语音发布、呼叫中心等服务支持。\n   【功能特性】\n1、\t基于地理位置时时推送资源信息。\n用户可以基于位置时时获取周边车源、货源、仓储资源、物流公司、配送中心、快递公司、加油站、汽车维修服务等物流及相关资源。\n2、\t语音快捷发布信息。\n无需登录,即可通过语音便捷发布供需信息。\n3、\t运价指数动态呈现。\n时时推送最新运价数据,轻松掌握运价变动。\n4、\t供需互评,构建诚信体系。\n供需双方达成真实交易客观互评,打造安全、诚信的交易环境。\n5、\t专业智能平台、专属人工服务。\n供需资源智能匹配与人工服务完美结合,促成物流资源安全、高效交易。\n客服热线:400-662-9256\nQQ客服群:208699632",
		"minimumOsVersion": "8.4",
		"genreIds": ["6000", "6002"],
		"releaseDate": "2015-05-13T16:30:42Z",
		"sellerName": "Tangshan Chenglian E-Business Co., Ltd.",
		"bundleId": "com.liwei.app",
		"releaseNotes": "物流唐山更新了--\n1,针对iOS9.1做了适配\n2,优化了项目解决了一些地方的卡顿问题\n3,解决了一些信息错乱问题",
		"trackId": 990902550,
		"trackName": "物流唐山",
		"primaryGenreName": "Business",
		"primaryGenreId": 6000,
		"isVppDeviceBasedLicensingEnabled": true,
		"formattedPrice": "Free"
	}]
}

我们只需要其中的三个字段即可:

"version": "1.0.5",
"trackViewUrl": "https://itunes.apple.com/us/app/wu-liu-tang-shan/id990902550?mt=8&uo=4",
"releaseNotes": "物流唐山更新了--\n1,针对iOS9.1做了适配\n2,优化了项目解决了一些地方的卡顿问题\n3,解决了一些信息错乱问题"

判断方法与上面没有太大差别:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"https://itunes.apple.com/lookup?id=990902550" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSDictionary *dict = [responseObject[@"results"] firstObject];
    // 获得当前软件的版本号
    NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleVersion"];
    if ([dict[@"verison"] isEqualToString:currentVersion]) {
        // 版本相同...
    } else {
        // 版本不同...
    }
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];

继续介绍第三种方法,采用友盟更新的好处是可以随时设置版本号与更新内容,不同于第一种方法需要自己维护。方便简洁高度集成。

1.首先注册友盟:http://www.umeng.com/users/sign_up

2.创建应用:http://www.umeng.com/apps


3.创建完成以后在左上方全部应用点击,选中刚刚创建的应用,点击组件,再点击自动更新,编辑更新:




说明:app网址就是app在App Store的下载地址。版本号就是你上架的app的版本号。更新日志就是更新了哪些内容。

4.点击左下角iOS 自动更新SDK下载,将SDK导入项目中。


5.在AppDelegate.m文件中import头文件UMCheckUpdate.h,在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;函数中调用友盟更新。

[UMCheckUpdate checkUpdate:@"发现新版本" cancelButtonTitle:@"稍后再说" otherButtonTitles:@"立即去更新" appkey:@"应用的appKey" channel:nil];



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值