從iOS8系統開始,用戶可以在設置裡面設置在WiFi環境下,自動更新安裝的App。此功能大大方便了用戶,但是一些用戶沒有開啟此項功能,因此還是需要在程式裡面提示用戶的 方法一:在伺服器介面約定對應的數據,這樣,伺服器直接傳遞信息,提示用戶有新版本,可以去商店升級 註意:這個方法是有毛病的,若您的Ap ...
從iOS8系統開始,用戶可以在設置裡面設置在WiFi環境下,自動更新安裝的App。此功能大大方便了用戶,但是一些用戶沒有開啟此項功能,因此還是需要在程式裡面提示用戶的
方法一:在伺服器介面約定對應的數據,這樣,伺服器直接傳遞信息,提示用戶有新版本,可以去商店升級
註意:這個方法是有毛病的,若您的App還沒審核通過,而移動端後臺數據已經更新,後臺給您返回的版本號是最新的版本號,老版本會提示用戶升級,但是用戶點擊升級後跳轉至AppStore卻發現App還未更新
方法二:檢測手機上安裝的App版本,然後跟App Store上App的版本信息聯合來判斷(目前最常用的方法)
步驟一:獲取當前運行的版本信息,通過info.plist文件的bundle version中獲取
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; //當前版本號 NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
步驟二:獲取AppStore中的App版本信息
-(void)judgeAppVersion{
//AppStore訪問地址(重點) NSString *urlStr = @"https://itunes.apple.com//lookup?id=AppID"; NSURL *url = [NSURL URLWithString:urlStr]; NSURLRequest *req = [NSURLRequest requestWithURL:url]; [NSURLConnection connectionWithRequest:req delegate:self]; } #pragma mark - NSURLConnectionDataDelegate -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ NSError *error;
//解析 NSDictionary *appInfo = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error]; NSArray *infoContent = [appInfo objectForKey:@"results"]; //最新版本號 NSString *version = [[infoContent objectAtIndex:0] objectForKey:@"version"]; //應用程式介紹網址(用戶升級跳轉URL) NSString *trackViewUrl = [[infoContent objectAtIndex:0] objectForKey:@"trackViewUrl"]; }
解析從AppStore獲取到的App信息(這裡就只介紹重點使用到的信息)
minimumOsVersion = "8.0"; //App所支持的最低iOS系統 fileSizeBytes = ; //應用的大小 releaseDate = ""; //發佈時間 trackCensoredName = ""; //審查名稱 trackContentRating = ""; //評級 trackId = ; //應用程式ID trackName = ""; //應用程式名稱 trackViewUrl = ""; //應用程式介紹網址 version = "4.0.3"; //版本號
步驟三:判斷當前線上App的版本號與所使用的App版本號是否一致
if (![version isEqualToString:currentVersion]) { [SimplifyAlertView alertWithTitle:@"檢查更新:i店" message:[NSString stringWithFormat:@"發現新版本(%@),是否升級",version] operationResult:^(NSInteger selectedIndex) { if (selectedIndex == 1) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:trackViewUrl]]; } } cancelButtonTitle:@"取消" otherButtonTitles:@"升級", nil]; }