去年蘋果官方要求所有的APP不能出現(xiàn) “當(dāng)前版本”字樣,是因?yàn)閺膇OS8系統(tǒng)開始,你可以在設(shè)置里面設(shè)置在WiFi情況下,自動(dòng)更新安裝的APP。此功能大大方便了用戶,但是一些用戶沒(méi)有開啟此項(xiàng)功能,因此還是需要在程序里面提示用戶的。方法一是在服務(wù)器接口約定對(duì)應(yīng)的數(shù)據(jù),這樣,服務(wù)器直接傳遞信息,提示用戶有新版本,可以去商店升級(jí)。方法二是檢測(cè)手機(jī)上安裝的APP的版本,然后跟AppStore上app的版本信息聯(lián)合來(lái)判斷。 方法一中,之前的做法是在特定的頁(yè)面的時(shí)候 發(fā)送請(qǐng)求,根據(jù)請(qǐng)求數(shù)據(jù),彈出 UIAlertView進(jìn)行提示。 方法二也是比較常用的方法。 首先,確定安裝的APP的版本。 當(dāng)前運(yùn)行版本信息可以通過(guò)info.plist文件中的bundle version中獲取 NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"]; 其次,請(qǐng)求APP的相關(guān)數(shù)據(jù) https://itunes.apple.com/lookup?id=XXX (其中XXX是你的app的商店 ID) ,你獲取到數(shù)據(jù)是json數(shù)據(jù)。 進(jìn)行解析,將 version 的數(shù)據(jù)跟你從info.plist 獲取的數(shù)據(jù)進(jìn)行比較! PS:還是介紹一下對(duì)應(yīng)信息 trackCensoredName = 審查名稱; trackContentRating = 評(píng)級(jí); trackId = 應(yīng)用程序 ID; trackName = 應(yīng)用程序名稱; trackViewUrl = 應(yīng)用程序介紹網(wǎng)址; userRatingCount = 用戶評(píng)級(jí); userRatingCountForCurrentVersion = 1; version = 版本號(hào); 上代碼 /** * 判斷app安裝版本和商店版本的比較 */ -(void)judgeAPPVersion { // https://itunes.apple.com/lookup?id=604685049 NSString *urlStr = @"https://itunes.apple.com/lookup?id=604685049"; NSURL *url = [NSURL URLWithString:urlStr]; NSURLRequest *req = [NSURLRequest requestWithURL:url]; [NSURLConnection connectionWithRequest:req delegate:self]; } -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSError *error; id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error]; NSDictionary *appInfo = (NSDictionary *)jsonObject; NSArray *infoContent = [appInfo objectForKey:@"results"]; NSString *version = [[infoContent objectAtIndex:0] objectForKey:@"version"]; NSLog(@"商店的版本是 %@",version); NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"]; NSLog(@"當(dāng)前的版本是 %@",currentVersion); UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:@"商店有最新版本了" delegate:nil cancelButtonTitle:@"YES" otherButtonTitles:nil,nil]; [alert show]; } } 當(dāng)然你還是可以在頁(yè)面有個(gè)跳轉(zhuǎn)到商店更新APP的接口的按鈕滴! [[UIApplication sharedApplication] openURL:[NSURL URLWithString:trackViewUrl]]; ====== PS:僅供參考 |
|
來(lái)自: 玄冰優(yōu) > 《iOS 點(diǎn)滴》