由于改版之后應用中不能含有自動更新提示的樣式,只能提示用戶進行更新
App檢測更新可以使用兩種方法。第一種是和安卓等系統一樣,獲取自己服務器的App版本號與已安裝的App版本號比較;第二種是根據已發布到App Store上的應用版本號與已安裝的App版本號比較更新。第一種檢測更新方法的優點是:檢測更新速度快、檢測穩定;缺點是:和App Store上的應用版本號不同步(App上架需要審核時間,不確定什么時候成功更新到App Store上)。第二種方法檢測更新方法的優點是:檢測版本號是實時同步的;缺點是:蘋果網絡不穩定,檢測更新有點延時,部分App獲取不到任何參數。
方法一:獲取自己服務器版本號檢查 1、通過網絡請求獲取服務器上的版本號; 2、調用上面的比較方法,比較前應用版本號和服務器上的版本號; 3、如果有版本更新則跳轉到App Store上下載。
方法二:獲取App Store上架版本號檢查 1、通過網絡同步請求獲取App Store上對應APP ID的應用信息; 2、提取信息上的最新版本號等信息; 3、提取最新版本號; 4、調用上面的比較方法,比較前應用版本號和最新版本號; 5、如果有版本更新則跳轉到App Store上下載。
/**獲取程序的版本號*/NSString *version = [[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleVersion"];AFHTTPsessionManager *mgr = [AFHTTPSessionManager manager];[mgr.responseSerializer setAcceptableContentTypes: [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascrSEObject) {// 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) {}];新聞熱點
疑難解答